Hızlı Başlangıç: PostgreSQL için Azure Veritabanı - Esnek Sunucu ile Java ve JDBC kullanma
ŞUNLAR IÇIN GEÇERLIDIR: PostgreSQL için Azure Veritabanı - Esnek Sunucu
Bu makalede, bilgileri esnek PostgreSQL için Azure Veritabanı sunucuda depolamak ve almak için Java ve JDBC kullanan örnek bir uygulama oluşturma gösterilmektedir.
JDBC, geleneksel ilişkisel veritabanlarına bağlanmak için standart Java API'dir.
Bu makalede iki kimlik doğrulama yöntemi ekleyeceğiz: Microsoft Entra kimlik doğrulaması ve PostgreSQL kimlik doğrulaması. Parolasız sekmesi Microsoft Entra kimlik doğrulamasını, Parola sekmesi ise PostgreSQL kimlik doğrulamasını gösterir.
Microsoft Entra kimlik doğrulaması, Microsoft Entra Kimliği'nde tanımlanan kimlikleri kullanarak PostgreSQL için Azure Veritabanı bağlanmaya yönelik bir mekanizmadır. Microsoft Entra kimlik doğrulaması ile veritabanı kullanıcı kimliklerini ve diğer Microsoft hizmetleri merkezi bir konumda yönetebilir ve bu da izin yönetimini basitleştirir.
PostgreSQL kimlik doğrulaması PostgreSQL'de depolanan hesapları kullanır. Hesaplar için kimlik bilgileri olarak parolaları kullanmayı seçerseniz, bu kimlik bilgileri tabloda depolanır user
. Bu parolalar PostgreSQL'de depolandığından, parolaların döndürmesini kendiniz yönetmeniz gerekir.
Önkoşullar
- Azure hesabı. Azure hesabınız yoksa ücretsiz bir deneme hesabı edinin.
- Azure Cloud Shell veya Azure CLI. Oturumunuzun otomatik olarak açılması ve ihtiyaç duyduğunuz tüm araçlara erişebilmeniz için Azure Cloud Shell’i öneririz.
- Desteklenen bir Java Geliştirme Seti, sürüm 8 (Azure Cloud Shell'e dahildir).
- Apache Maven derleme aracı.
Çalışma ortamını hazırlama
İlk olarak, bazı ortam değişkenlerini ayarlamak için aşağıdaki komutu kullanın.
export AZ_RESOURCE_GROUP=database-workshop
export AZ_DATABASE_SERVER_NAME=<YOUR_DATABASE_SERVER_NAME>
export AZ_DATABASE_NAME=<YOUR_DATABASE_NAME>
export AZ_LOCATION=<YOUR_AZURE_REGION>
export AZ_POSTGRESQL_AD_NON_ADMIN_USERNAME=<YOUR_POSTGRESQL_AD_NON_ADMIN_USERNAME>
export AZ_LOCAL_IP_ADDRESS=<YOUR_LOCAL_IP_ADDRESS>
export CURRENT_USERNAME=$(az ad signed-in-user show --query userPrincipalName -o tsv)
Yer tutucuları, bu makale boyunca kullanılan aşağıdaki değerlerle değiştirin:
<YOUR_DATABASE_SERVER_NAME>
: Azure genelinde benzersiz olması gereken PostgreSQL için Azure Veritabanı esnek sunucu örneğinizin adı.<YOUR_DATABASE_NAME>
: Azure'da benzersiz olması gereken PostgreSQL için Azure Veritabanı esnek sunucu örneğinin veritabanı adı.<YOUR_AZURE_REGION>
: Kullanılacak Azure bölgesi. Varsayılan olarakeastus
kullanabilirsiniz ancak bölgeyi, yaşadığınız yere yakın bir yerde yapılandırmanızı öneririz. girerekaz account list-locations
kullanılabilir bölgelerin tam listesini görebilirsiniz.<YOUR_POSTGRESQL_AD_NON_ADMIN_USERNAME>
: PostgreSQL için Azure Veritabanı esnek sunucu örneğinizin kullanıcı adı. Kullanıcı adının Microsoft Entra kiracınızda geçerli bir kullanıcı olduğundan emin olun.<YOUR_LOCAL_IP_ADDRESS>
: Spring Boot uygulamanızı çalıştırabileceğiniz yerel bilgisayarınızın IP adresi. Bunu bulmanın kullanışlı yollarından biri whatismyip.akamai.com açmaktır.
Önemli
ayarlarken <YOUR_POSTGRESQL_AD_NON_ADMIN_USERNAME>
kullanıcı adı Microsoft Entra kiracınızda zaten mevcut olmalıdır, aksi takdirde veritabanınızda bir Microsoft Entra kullanıcısı oluşturamazsınız.
Ardından, aşağıdaki komutu kullanarak bir kaynak grubu oluşturun:
az group create \
--name $AZ_RESOURCE_GROUP \
--location $AZ_LOCATION \
--output tsv
PostgreSQL için Azure Veritabanı esnek sunucu örneği oluşturma
Aşağıdaki bölümlerde veritabanı örneğinizin nasıl oluşturulacağı ve yapılandırıldığı açıklanmaktadır.
PostgreSQL için Azure Veritabanı esnek sunucu örneği oluşturma ve yönetici kullanıcıyı ayarlama
Oluşturduğunuz ilk şey, yönetilen PostgreSQL için Azure Veritabanı esnek sunucu örneğidir.
Not
Azure portalını kullanarak PostgreSQL için Azure Veritabanı esnek sunucu örneği oluşturma bölümünde PostgreSQL için Azure Veritabanı esnek sunucu örnekleri oluşturma hakkında daha ayrıntılı bilgi edinebilirsiniz.
Azure CLI kullanıyorsanız, yeterli izne sahip olduğundan emin olmak için aşağıdaki komutu çalıştırın:
az login --scope https://graph.microsoft.com/.default
Sunucuyu oluşturmak için aşağıdaki komutu çalıştırın:
az postgres flexible-server create \
--resource-group $AZ_RESOURCE_GROUP \
--name $AZ_DATABASE_SERVER_NAME \
--location $AZ_LOCATION \
--yes \
--output tsv
Sunucuyu oluşturduktan sonra bir Microsoft Entra yöneticisi ayarlamak için PostgreSQL için Azure Veritabanı - Esnek Sunucu'da Microsoft Entra rollerini yönetme makalesindeki adımları izleyin.
Önemli
Yöneticiyi ayarlarken, PostgreSQL için Azure Veritabanı esnek sunucu örneğinin Azure veritabanına tam yönetici ayrıcalıklarına sahip yeni bir kullanıcı eklenir. PostgreSQL için Azure Veritabanı esnek sunucu örneği başına birden çok Microsoft Entra yöneticisi oluşturabilirsiniz.
Sorun mu yaşıyorsunuz? Bize bildirin.
PostgreSQL için Azure Veritabanı esnek sunucu örneğiniz için güvenlik duvarı kuralı yapılandırma
PostgreSQL için Azure Veritabanı esnek sunucu örnekleri varsayılan olarak güvenlidir. Gelen bağlantılara izin vermeyen bir güvenlik duvarı vardır. Veritabanınızı kullanabilmek için yerel IP adresinin veritabanı sunucusuna erişmesine izin veren bir güvenlik duvarı kuralı eklemeniz gerekir.
Bu makalenin başında yerel IP adresinizi yapılandırdığınızdan, aşağıdaki komutu çalıştırarak sunucunun güvenlik duvarını açabilirsiniz:
az postgres flexible-server firewall-rule create \
--resource-group $AZ_RESOURCE_GROUP \
--name $AZ_DATABASE_SERVER_NAME \
--rule-name $AZ_DATABASE_SERVER_NAME-database-allow-local-ip \
--start-ip-address $AZ_LOCAL_IP_ADDRESS \
--end-ip-address $AZ_LOCAL_IP_ADDRESS \
--output tsv
Windows bilgisayarda Linux için Windows Alt Sistemi 'den (WSL) PostgreSQL için Azure Veritabanı esnek sunucu örneğinize bağlanıyorsanız WSL ana bilgisayar kimliğini güvenlik duvarınıza eklemeniz gerekir.
WSL'de aşağıdaki komutu çalıştırarak konak makinenizin IP adresini alın:
cat /etc/resolv.conf
teriminden nameserver
sonra IP adresini kopyalayın ve WSL IP Adresi için bir ortam değişkeni ayarlamak üzere aşağıdaki komutu kullanın:
AZ_WSL_IP_ADDRESS=<the-copied-IP-address>
Ardından aşağıdaki komutu kullanarak sunucunun güvenlik duvarını WSL tabanlı uygulamanızda açın:
az postgres flexible-server firewall-rule create \
--resource-group $AZ_RESOURCE_GROUP \
--name $AZ_DATABASE_SERVER_NAME \
--rule-name $AZ_DATABASE_SERVER_NAME-database-allow-local-ip \
--start-ip-address $AZ_WSL_IP_ADDRESS \
--end-ip-address $AZ_WSL_IP_ADDRESS \
--output tsv
PostgreSQL için Azure Veritabanı esnek sunucu veritabanı yapılandırma
Aşağıdaki komutu kullanarak yeni bir veritabanı oluşturun:
az postgres flexible-server db create \
--resource-group $AZ_RESOURCE_GROUP \
--database-name $AZ_DATABASE_NAME \
--server-name $AZ_DATABASE_SERVER_NAME \
--output tsv
PostgreSQL için Azure Veritabanı esnek sunucu yönetici olmayan kullanıcı oluşturma ve izin verme
Ardından, yönetici olmayan bir kullanıcı oluşturun ve veritabanına tüm izinleri verin.
Not
PostgreSQL için Azure Veritabanı esnek sunucu kullanıcılarını yönetme hakkında daha ayrıntılı bilgileri Microsoft Entra kullanıcılarını yönetme - PostgreSQL için Azure Veritabanı - Esnek Sunucu'da okuyabilirsiniz.
Yönetici olmayan kullanıcı oluşturmak için create_ad_user.sql adlı bir SQL betiği oluşturun. Aşağıdaki içeriği ekleyin ve yerel olarak kaydedin:
cat << EOF > create_ad_user.sql
select * from pgaadauth_create_principal('$AZ_POSTGRESQL_AD_NON_ADMIN_USERNAME', false, false);
EOF
Ardından aşağıdaki komutu kullanarak SQL betiğini çalıştırarak Microsoft Entra yönetici olmayan kullanıcıyı oluşturun:
psql "host=$AZ_DATABASE_SERVER_NAME.postgres.database.azure.com user=$CURRENT_USERNAME dbname=postgres port=5432 password=$(az account get-access-token --resource-type oss-rdbms --output tsv --query accessToken) sslmode=require" < create_ad_user.sql
Şimdi geçici SQL betik dosyasını kaldırmak için aşağıdaki komutu kullanın:
rm create_ad_user.sql
Yeni java projesi oluşturma
Sık kullandığınız IDE'yi kullanarak Java 8 veya üzerini kullanarak yeni bir Java projesi oluşturun ve kök dizinine aşağıdaki içeriklere sahip bir pom.xml dosyası ekleyin:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<properties>
<java.version>1.8</java.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.3.6</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity-extensions</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
</project>
Bu dosya, projemizi kullanacak şekilde yapılandıran bir Apache Maven dosyasıdır:
- Java 8
- Java için son kullanılan bir PostgreSQL sürücüsü
Esnek PostgreSQL için Azure Veritabanı sunucuya bağlanmak için yapılandırma dosyası hazırlama
Bir src/main/resources/application.properties dosyası oluşturun ve aşağıdaki içeriği ekleyin:
cat << EOF > src/main/resources/application.properties
url=jdbc:postgresql://${AZ_DATABASE_SERVER_NAME}.postgres.database.azure.com:5432/${AZ_DATABASE_NAME}?sslmode=require&authenticationPluginClassName=com.azure.identity.extensions.jdbc.postgresql.AzurePostgresqlAuthenticationPlugin
user=${AZ_POSTGRESQL_AD_NON_ADMIN_USERNAME}
EOF
Not
Yapılandırma özelliği url
?serverTimezone=UTC
eklendiğinde JDBC sürücüsüne veritabanına bağlanırken TLS (Aktarım Katmanı Güvenliği) kullanmasını söyleyin. TLS'yi esnek PostgreSQL için Azure Veritabanı sunucuyla kullanmak zorunlu ve iyi bir güvenlik uygulamasıdır.
Veritabanı şemasını oluşturmak için SQL dosyası oluşturma
Veritabanı şeması oluşturmak için src /main/resources/schema.sql
dosyası kullanacaksınız. Aşağıdaki içerikle bu dosyayı oluşturun:
DROP TABLE IF EXISTS todo;
CREATE TABLE todo (id SERIAL PRIMARY KEY, description VARCHAR(255), details VARCHAR(4096), done BOOLEAN);
Uygulamayı kodlama
Veritabanına bağlanın
Ardından, PostgreSQL için Azure Veritabanı esnek sunucu örneğinizdeki verileri depolamak ve almak için JDBC kullanacak Java kodunu ekleyin.
Src /main/java/DemoApplication.java dosyası oluşturun ve aşağıdaki içeriği ekleyin:
package com.example.demo;
import java.sql.*;
import java.util.*;
import java.util.logging.Logger;
public class DemoApplication {
private static final Logger log;
static {
System.setProperty("java.util.logging.SimpleFormatter.format", "[%4$-7s] %5$s %n");
log =Logger.getLogger(DemoApplication.class.getName());
}
public static void main(String[] args) throws Exception {
log.info("Loading application properties");
Properties properties = new Properties();
properties.load(DemoApplication.class.getClassLoader().getResourceAsStream("application.properties"));
log.info("Connecting to the database");
Connection connection = DriverManager.getConnection(properties.getProperty("url"), properties);
log.info("Database connection test: " + connection.getCatalog());
log.info("Create database schema");
Scanner scanner = new Scanner(DemoApplication.class.getClassLoader().getResourceAsStream("schema.sql"));
Statement statement = connection.createStatement();
while (scanner.hasNextLine()) {
statement.execute(scanner.nextLine());
}
/*
Todo todo = new Todo(1L, "configuration", "congratulations, you have set up JDBC correctly!", true);
insertData(todo, connection);
todo = readData(connection);
todo.setDetails("congratulations, you have updated data!");
updateData(todo, connection);
deleteData(todo, connection);
*/
log.info("Closing database connection");
connection.close();
}
}
Sorun mu yaşıyorsunuz? Bize bildirin.
Bu Java kodu, daha önce oluşturduğumuz application.properties ve schema.sql dosyalarını kullanarak PostgreSQL için Azure Veritabanı esnek sunucu örneğine bağlanır ve verilerimizi depolayacak bir şema oluşturur.
Bu dosyada, verileri eklemek, okumak, güncelleştirmek ve silmek için yöntemlere açıklama eklediğimizi görebilirsiniz: bu yöntemleri bu makalenin geri kalanında kodlayacağız ve bunları birbiri ardına çözebileceksiniz.
Not
Veritabanı kimlik bilgileri, application.properties dosyasının kullanıcı ve parola özelliklerinde depolanır. Özellikler dosyası bağımsız değişken olarak geçirildiğinden, bu kimlik bilgileri yürütülürken DriverManager.getConnection(properties.getProperty("url"), properties);
kullanılır.
Artık bu ana sınıfı sık kullandığınız araçla yürütebilirsiniz:
- IDE'nizi kullanarak DemoApplication sınıfına sağ tıklayıp bunu yürütebilmeniz gerekir.
- Maven kullanarak şu komutu yürüterek uygulamayı çalıştırabilirsiniz:
mvn exec:java -Dexec.mainClass="com.example.demo.DemoApplication"
.
Uygulamanın PostgreSQL için Azure Veritabanı esnek sunucu örneğine bağlanması, veritabanı şeması oluşturması ve ardından konsol günlüklerinde görebileceğiniz gibi bağlantıyı kapatması gerekir:
[INFO ] Loading application properties
[INFO ] Connecting to the database
[INFO ] Database connection test: demo
[INFO ] Create database schema
[INFO ] Closing database connection
Etki alanı sınıfı oluşturma
sınıfının yanında DemoApplication
yeni Todo
bir Java sınıfı oluşturun ve aşağıdaki kodu ekleyin:
package com.example.demo;
public class Todo {
private Long id;
private String description;
private String details;
private boolean done;
public Todo() {
}
public Todo(Long id, String description, String details, boolean done) {
this.id = id;
this.description = description;
this.details = details;
this.done = done;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getDetails() {
return details;
}
public void setDetails(String details) {
this.details = details;
}
public boolean isDone() {
return done;
}
public void setDone(boolean done) {
this.done = done;
}
@Override
public String toString() {
return "Todo{" +
"id=" + id +
", description='" + description + '\'' +
", details='" + details + '\'' +
", done=" + done +
'}';
}
}
Bu sınıf, schema.sql betiğini yürütürken oluşturduğunuz tabloya todo
eşlenen bir etki alanı modelidir.
Esnek PostgreSQL için Azure Veritabanı sunucuya veri ekleme
src/main/java/DemoApplication.java dosyasında, main yönteminden sonra veritabanına veri eklemek için aşağıdaki yöntemi ekleyin:
private static void insertData(Todo todo, Connection connection) throws SQLException {
log.info("Insert data");
PreparedStatement insertStatement = connection
.prepareStatement("INSERT INTO todo (id, description, details, done) VALUES (?, ?, ?, ?);");
insertStatement.setLong(1, todo.getId());
insertStatement.setString(2, todo.getDescription());
insertStatement.setString(3, todo.getDetails());
insertStatement.setBoolean(4, todo.isDone());
insertStatement.executeUpdate();
}
Artık yönteminde aşağıdaki iki satırın açıklamalarını main
kaldırabilirsiniz:
Todo todo = new Todo(1L, "configuration", "congratulations, you have set up JDBC correctly!", true);
insertData(todo, connection);
Ana sınıfın yürütülmesi artık aşağıdaki çıkışı üretmelidir:
[INFO ] Loading application properties
[INFO ] Connecting to the database
[INFO ] Database connection test: demo
[INFO ] Create database schema
[INFO ] Insert data
[INFO ] Closing database connection
Esnek PostgreSQL için Azure Veritabanı sunucudan veri okuma
Kodumuzun düzgün çalıştığını doğrulamak için daha önce eklenen verileri okuyalım.
src/main/java/DemoApplication.java dosyasında, yönteminden insertData
sonra veritabanındaki verileri okumak için aşağıdaki yöntemi ekleyin:
private static Todo readData(Connection connection) throws SQLException {
log.info("Read data");
PreparedStatement readStatement = connection.prepareStatement("SELECT * FROM todo;");
ResultSet resultSet = readStatement.executeQuery();
if (!resultSet.next()) {
log.info("There is no data in the database!");
return null;
}
Todo todo = new Todo();
todo.setId(resultSet.getLong("id"));
todo.setDescription(resultSet.getString("description"));
todo.setDetails(resultSet.getString("details"));
todo.setDone(resultSet.getBoolean("done"));
log.info("Data read from the database: " + todo.toString());
return todo;
}
Artık yönteminde aşağıdaki satırın açıklamasını main
kaldırabilirsiniz:
todo = readData(connection);
Ana sınıfın yürütülmesi artık aşağıdaki çıkışı üretmelidir:
[INFO ] Loading application properties
[INFO ] Connecting to the database
[INFO ] Database connection test: demo
[INFO ] Create database schema
[INFO ] Insert data
[INFO ] Read data
[INFO ] Data read from the database: Todo{id=1, description='configuration', details='congratulations, you have set up JDBC correctly!', done=true}
[INFO ] Closing database connection
Esnek PostgreSQL için Azure Veritabanı sunucuda verileri güncelleştirme
Şimdi daha önce eklediğimiz verileri güncelleştirelim.
Src/main/java/DemoApplication.java dosyasında, yönteminden sonra veritabanının readData
içindeki verileri güncelleştirmek için aşağıdaki yöntemi ekleyin:
private static void updateData(Todo todo, Connection connection) throws SQLException {
log.info("Update data");
PreparedStatement updateStatement = connection
.prepareStatement("UPDATE todo SET description = ?, details = ?, done = ? WHERE id = ?;");
updateStatement.setString(1, todo.getDescription());
updateStatement.setString(2, todo.getDetails());
updateStatement.setBoolean(3, todo.isDone());
updateStatement.setLong(4, todo.getId());
updateStatement.executeUpdate();
readData(connection);
}
Artık yönteminde aşağıdaki iki satırın açıklamalarını main
kaldırabilirsiniz:
todo.setDetails("congratulations, you have updated data!");
updateData(todo, connection);
Ana sınıfın yürütülmesi artık aşağıdaki çıkışı üretmelidir:
[INFO ] Loading application properties
[INFO ] Connecting to the database
[INFO ] Database connection test: demo
[INFO ] Create database schema
[INFO ] Insert data
[INFO ] Read data
[INFO ] Data read from the database: Todo{id=1, description='configuration', details='congratulations, you have set up JDBC correctly!', done=true}
[INFO ] Update data
[INFO ] Read data
[INFO ] Data read from the database: Todo{id=1, description='configuration', details='congratulations, you have updated data!', done=true}
[INFO ] Closing database connection
Esnek PostgreSQL için Azure Veritabanı sunucudaki verileri silme
Son olarak, daha önce eklediğimiz verileri silelim.
Src/main/java/DemoApplication.java dosyasında, yönteminden updateData
sonra veritabanının içindeki verileri silmek için aşağıdaki yöntemi ekleyin:
private static void deleteData(Todo todo, Connection connection) throws SQLException {
log.info("Delete data");
PreparedStatement deleteStatement = connection.prepareStatement("DELETE FROM todo WHERE id = ?;");
deleteStatement.setLong(1, todo.getId());
deleteStatement.executeUpdate();
readData(connection);
}
Artık yönteminde aşağıdaki satırın açıklamasını main
kaldırabilirsiniz:
deleteData(todo, connection);
Ana sınıfın yürütülmesi artık aşağıdaki çıkışı üretmelidir:
[INFO ] Loading application properties
[INFO ] Connecting to the database
[INFO ] Database connection test: demo
[INFO ] Create database schema
[INFO ] Insert data
[INFO ] Read data
[INFO ] Data read from the database: Todo{id=1, description='configuration', details='congratulations, you have set up JDBC correctly!', done=true}
[INFO ] Update data
[INFO ] Read data
[INFO ] Data read from the database: Todo{id=1, description='configuration', details='congratulations, you have updated data!', done=true}
[INFO ] Delete data
[INFO ] Read data
[INFO ] There is no data in the database!
[INFO ] Closing database connection
Kaynakları temizleme
Tebrikler! Esnek PostgreSQL için Azure Veritabanı sunucudan veri depolamak ve almak için JDBC kullanan bir Java uygulaması oluşturdunuz.
Bu hızlı başlangıç sırasında kullanılan tüm kaynakları temizlemek için aşağıdaki komutu kullanarak kaynak grubunu silin:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes
İlgili içerik
- PostgreSQL için Azure Veritabanı - Esnek Sunucuyu yönetme.
- Hızlı Başlangıç: Esnek PostgreSQL için Azure Veritabanı sunucu örneğine bağlanmak ve veri sorgulamak için Python kullanın.
- Hızlı Başlangıç: Esnek PostgreSQL için Azure Veritabanı sunucu örneğine bağlanmak ve verileri sorgulamak için .NET (C#) kullanın.
- Hızlı Başlangıç: Esnek PostgreSQL için Azure Veritabanı sunucu örneğine bağlanmak ve veri sorgulamak için Go dilini kullanın.
- Hızlı Başlangıç: Esnek PostgreSQL için Azure Veritabanı sunucu örneğine bağlanmak ve verileri sorgulamak için PHP kullanın.
- Hızlı Başlangıç: Esnek PostgreSQL için Azure Veritabanı sunucu örneğine bağlanmak ve veri sorgulamak için Azure CLI'yi kullanın.
- Hızlı Başlangıç: Power BI'da PostgreSQL için Azure Veritabanı - Esnek Sunucudan verileri içeri aktarma.