Dalam artikel ini, kami membahas metode autentikasi dan klien yang didukung yang dapat Anda gunakan untuk menyambungkan aplikasi Anda ke Azure SQL Database menggunakan Konektor Layanan. Untuk setiap metode yang didukung, kami menyediakan kode sampel dan menjelaskan nama variabel lingkungan default, nilai, dan konfigurasi yang diperoleh saat membuat koneksi layanan.
Layanan komputasi yang didukung
Konektor Layanan dapat digunakan untuk menyambungkan layanan komputasi berikut ke Azure SQL Database:
- Azure App Service
- Azure Functions
- Azure Kubernetes Service (AKS)
- Azure Spring Apps
Jenis autentikasi dan klien yang didukung
Tabel berikut ini memperlihatkan kombinasi metode autentikasi dan klien mana yang didukung untuk menyambungkan layanan komputasi Anda ke Azure SQL Database menggunakan Konektor Layanan.
Ya menunjukkan bahwa kombinasi didukung, sementara Tidak menunjukkan bahwa kombinasi tersebut tidak didukung.
| Jenis klien |
Identitas terkelola yang diberikan oleh sistem |
Identitas terkelola yang ditetapkan pengguna |
Rahasia atau string koneksi |
Principal layanan |
| .NET |
Yes |
Yes |
Yes |
Yes |
| Maju |
Tidak |
Tidak |
Yes |
Tidak |
| Java |
Yes |
Yes |
Yes |
Yes |
| Java - Spring Boot |
Yes |
Yes |
Yes |
Yes |
| Node.js |
Yes |
Yes |
Yes |
Yes |
| PHP |
Tidak |
Tidak |
Yes |
Tidak |
| Python |
Yes |
Yes |
Yes |
Yes |
| Python - Django |
Tidak |
Tidak |
Yes |
Tidak |
| Ruby |
Tidak |
Tidak |
Yes |
Tidak |
| None |
Yes |
Yes |
Yes |
Yes |
Catatan
Identitas terkelola yang ditetapkan sistem, identitas terkelola yang ditetapkan pengguna, dan autentikasi perwakilan layanan hanya didukung di Azure CLI.
Nama variabel lingkungan default atau properti aplikasi dan kode sampel
Gunakan detail koneksi berikut untuk menyambungkan layanan komputasi ke Azure SQL Database. Untuk setiap contoh, ganti teks placeholder <sql-server>, <sql-database>, <sql-username>, dan <sql-password> dengan nama server, nama database, User ID, dan kata sandi Anda sendiri. Untuk informasi selengkapnya tentang konvensi penamaan, periksa artikel mengenai internal Konektor Layanan.
Identitas terkelola yang diberikan oleh sistem
| Nama Variabel Lingkungan Default |
Deskripsi |
Nilai sampel |
AZURE_SQL_CONNECTIONSTRING |
String koneksi Azure SQL Database |
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;Authentication=ActiveDirectoryManagedIdentity |
| Nama Variabel Lingkungan Default |
Deskripsi |
Nilai sampel |
AZURE_SQL_CONNECTIONSTRING |
String koneksi Azure SQL Database |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-database>;authentication=ActiveDirectoryMSI; |
| Nama Variabel Lingkungan Default |
Deskripsi |
Nilai sampel |
spring.datasource.url |
URL sumber data Azure SQL Database |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; |
| Nama Variabel Lingkungan Default |
Deskripsi |
Nilai sampel |
AZURE_SQL_SERVER |
Server Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
Database Azure SQL Database |
<sql-database> |
AZURE_SQL_AUTHENTICATION |
Autentikasi Azure SQL |
ActiveDirectoryMsi |
| Nama Variabel Lingkungan Default |
Deskripsi |
Nilai sampel |
AZURE_SQL_SERVER |
Server Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
Database Azure SQL Database |
<sql-database> |
AZURE_SQL_AUTHENTICATIONTYPE |
Jenis autentikasi Azure SQL Database |
azure-active-directory-default |
| Nama Variabel Lingkungan Default |
Deskripsi |
Nilai sampel |
AZURE_SQL_HOST |
Server Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
Database Azure SQL Database |
<sql-database> |
AZURE_SQL_AUTHENTICATION |
Jenis autentikasi Azure SQL Database |
azure-active-directory-default |
Contoh kode
Untuk menyambungkan ke Azure SQL Database menggunakan identitas terkelola yang ditetapkan sistem, lihat langkah-langkah dan kode sampel berikut.
Instal dependensi.
dotnet add package Microsoft.Data.SqlClient
Dapatkan string koneksi Azure SQL Database dari variabel lingkungan yang ditambahkan oleh Konektor Layanan.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Untuk informasi selengkapnya, lihat Menggunakan autentikasi Identitas Terkelola Direktori Aktif.
Tambahkan dependensi berikut dalam file pom.xml Anda:
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>10.2.0.jre11</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.7.0</version>
</dependency>
Dapatkan string koneksi Azure SQL Database dari variabel lingkungan yang ditambahkan oleh Konektor Layanan.
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import com.microsoft.sqlserver.jdbc.SQLServerDataSource;
public class Main {
public static void main(String[] args) {
// AZURE_SQL_CONNECTIONSTRING should be one of the following:
// For system-assigned managed identity: "jdbc:sqlserver://{SQLName}.database.windows.net:1433;databaseName={SQLDbName};authentication=ActiveDirectoryMSI;"
// For user-assigned managed identity: "jdbc:sqlserver://{SQLName}.database.windows.net:1433;databaseName={SQLDbName};msiClientId={UserAssignedMiClientId};authentication=ActiveDirectoryMSI;"
// For service principal: "jdbc:sqlserver://{SQLName}.database.windows.net:1433;databaseName={SQLDbName};user={ServicePrincipalClientId};password={spSecret};authentication=ActiveDirectoryServicePrincipal;"
String connectionString = System.getenv("AZURE_SQL_CONNECTIONSTRING");
SQLServerDataSource ds = new SQLServerDataSource();
ds.setURL(connectionString);
try (Connection connection = ds.getConnection()) {
System.out.println("Connected successfully.");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Untuk informasi selengkapnya, lihat Menyambungkan ke database Azure dari App Service tanpa rahasia menggunakan identitas terkelola.
Untuk aplikasi Spring, jika Anda membuat koneksi dengan opsi --client-type springboot, Service Connector mengatur properti spring.datasource.url dengan format nilai jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; ke Azure Spring Apps.
Perbarui aplikasi Anda dengan mengikuti tutorial Memigrasikan aplikasi Java untuk menggunakan koneksi tanpa kata sandi dengan Azure SQL Database. Ingatlah untuk menghapus properti konfigurasi spring.datasource.password jika sudah diatur sebelumnya dan tambahkan dependensi yang sesuai.
Instal dependensi.
python -m pip install mssql-python python-dotenv
Dapatkan konfigurasi koneksi Azure SQL Database dari variabel lingkungan yang ditambahkan oleh Konektor Layanan. Dalam kode di bawah ini, hapus tanda komentar pada bagian yang sesuai dengan jenis autentikasi Anda.
import os
from mssql_python import connect
server = os.getenv('AZURE_SQL_SERVER')
port = os.getenv('AZURE_SQL_PORT')
database = os.getenv('AZURE_SQL_DATABASE')
# Uncomment the following lines corresponding to the authentication type you want to use.
# For system-assigned managed identity.
# connection_string = f'Server={server},{port};Database={database};Authentication=ActiveDirectoryMSI;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
# For user-assigned managed identity.
# client_id = os.getenv('AZURE_SQL_USER')
# connection_string = f'Server={server},{port};Database={database};UID={client_id};Authentication=ActiveDirectoryMSI;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
# For service principal.
# user = os.getenv('AZURE_SQL_USER')
# password = os.getenv('AZURE_SQL_PASSWORD')
# connection_string = f'Server={server},{port};Database={database};UID={user};PWD={password};Authentication=ActiveDirectoryServicePrincipal;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
conn = connect(connection_string)
- Instal dependensi.
npm install mssql
- Dapatkan konfigurasi koneksi Azure SQL Database dari variabel lingkungan yang ditambahkan oleh Konektor Layanan. Dalam kode di bawah ini, hapus tanda komentar pada bagian yang sesuai dengan jenis autentikasi Anda.
import sql from 'mssql';
const server = process.env.AZURE_SQL_SERVER;
const database = process.env.AZURE_SQL_DATABASE;
const port = parseInt(process.env.AZURE_SQL_PORT);
const authenticationType = process.env.AZURE_SQL_AUTHENTICATIONTYPE;
// Uncomment the following lines corresponding to the authentication type you want to use.
// For system-assigned managed identity.
// const config = {
// server,
// port,
// database,
// authentication: {
// type: authenticationType
// },
// options: {
// encrypt: true
// }
// };
// For user-assigned managed identity.
// const clientId = process.env.AZURE_SQL_CLIENTID;
// const config = {
// server,
// port,
// database,
// authentication: {
// type: authenticationType
// },
// options: {
// encrypt: true,
// clientId: clientId
// }
// };
// For service principal.
// const clientId = process.env.AZURE_SQL_CLIENTID;
// const clientSecret = process.env.AZURE_SQL_CLIENTSECRET;
// const tenantId = process.env.AZURE_SQL_TENANTID;
// const config = {
// server,
// port,
// database,
// authentication: {
// type: authenticationType
// },
// options: {
// encrypt: true,
// clientId: clientId,
// clientSecret: clientSecret,
// tenantId: tenantId
// }
// };
this.poolconnection = await sql.connect(config);
Untuk informasi selengkapnya, lihat Beranda untuk pemrograman klien ke Microsoft SQL Server.
Identitas terkelola yang ditetapkan pengguna
| Nama Variabel Lingkungan Default |
Deskripsi |
Nilai sampel |
AZURE_SQL_CONNECTIONSTRING |
String koneksi Azure SQL Database |
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;User ID=<identity-client-ID>;Authentication=ActiveDirectoryManagedIdentity |
| Nama Variabel Lingkungan Default |
Deskripsi |
Nilai sampel |
AZURE_SQL_CONNECTIONSTRING |
String koneksi Azure SQL Database |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-database>;msiClientId=<msiClientId>;authentication=ActiveDirectoryMSI; |
| Nama Variabel Lingkungan Default |
Deskripsi |
Nilai sampel |
spring.datasource.url |
URL sumber data Azure SQL Database |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;msiClientId=<msiClientId>;authentication=ActiveDirectoryMSI; |
| Nama Variabel Lingkungan Default |
Deskripsi |
Nilai sampel |
AZURE_SQL_SERVER |
Server Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
Database Azure SQL Database |
<sql-database> |
AZURE_SQL_USER |
Pengguna Azure SQL Database |
Object (principal) ID |
AZURE_SQL_AUTHENTICATION |
Autentikasi Azure SQL |
ActiveDirectoryMsi |
| Nama Variabel Lingkungan Default |
Deskripsi |
Nilai sampel |
AZURE_SQL_SERVER |
Server Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
Database Azure SQL Database |
<sql-database> |
AZURE_SQL_AUTHENTICATIONTYPE |
Jenis autentikasi Azure SQL Database |
azure-active-directory-default |
AZURE_SQL_CLIENTID |
ID klien untuk Azure SQL Database |
<identity-client-ID> |
| Nama Variabel Lingkungan Default |
Deskripsi |
Nilai sampel |
AZURE_SQL_HOST |
Server Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
Database Azure SQL Database |
<sql-database> |
AZURE_SQL_AUTHENTICATION |
Jenis autentikasi Azure SQL Database |
azure-active-directory-default |
AZURE_SQL_USERNAME |
ID klien untuk Azure SQL Database |
<your Client ID> |
Contoh kode
Untuk menyambungkan ke Azure SQL Database menggunakan identitas terkelola yang ditetapkan pengguna, lihat langkah-langkah dan kode sampel berikut.
Instal dependensi.
dotnet add package Microsoft.Data.SqlClient
Dapatkan string koneksi Azure SQL Database dari variabel lingkungan yang ditambahkan oleh Konektor Layanan.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Untuk informasi selengkapnya, lihat Menggunakan autentikasi Identitas Terkelola Direktori Aktif.
Tambahkan dependensi berikut dalam file pom.xml Anda:
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>10.2.0.jre11</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.7.0</version>
</dependency>
Dapatkan string koneksi Azure SQL Database dari variabel lingkungan yang ditambahkan oleh Konektor Layanan.
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import com.microsoft.sqlserver.jdbc.SQLServerDataSource;
public class Main {
public static void main(String[] args) {
// AZURE_SQL_CONNECTIONSTRING should be one of the following:
// For system-assigned managed identity: "jdbc:sqlserver://{SQLName}.database.windows.net:1433;databaseName={SQLDbName};authentication=ActiveDirectoryMSI;"
// For user-assigned managed identity: "jdbc:sqlserver://{SQLName}.database.windows.net:1433;databaseName={SQLDbName};msiClientId={UserAssignedMiClientId};authentication=ActiveDirectoryMSI;"
// For service principal: "jdbc:sqlserver://{SQLName}.database.windows.net:1433;databaseName={SQLDbName};user={ServicePrincipalClientId};password={spSecret};authentication=ActiveDirectoryServicePrincipal;"
String connectionString = System.getenv("AZURE_SQL_CONNECTIONSTRING");
SQLServerDataSource ds = new SQLServerDataSource();
ds.setURL(connectionString);
try (Connection connection = ds.getConnection()) {
System.out.println("Connected successfully.");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Untuk informasi selengkapnya, lihat Menyambungkan ke database Azure dari App Service tanpa rahasia menggunakan identitas terkelola.
Untuk aplikasi Spring, jika Anda membuat koneksi dengan opsi --client-type springboot, Service Connector mengatur properti spring.datasource.url dengan format nilai jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; ke Azure Spring Apps.
Perbarui aplikasi Anda dengan mengikuti tutorial Memigrasikan aplikasi Java untuk menggunakan koneksi tanpa kata sandi dengan Azure SQL Database. Ingatlah untuk menghapus properti konfigurasi spring.datasource.password jika sudah diatur sebelumnya dan tambahkan dependensi yang sesuai.
Instal dependensi.
python -m pip install mssql-python python-dotenv
Dapatkan konfigurasi koneksi Azure SQL Database dari variabel lingkungan yang ditambahkan oleh Konektor Layanan. Dalam kode di bawah ini, hapus tanda komentar pada bagian untuk jenis autentikasi Anda.
import os
from mssql_python import connect
server = os.getenv('AZURE_SQL_SERVER')
port = os.getenv('AZURE_SQL_PORT')
database = os.getenv('AZURE_SQL_DATABASE')
# Uncomment the following lines corresponding to the authentication type you want to use.
# For system-assigned managed identity.
# connection_string = f'Server={server},{port};Database={database};Authentication=ActiveDirectoryMSI;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
# For user-assigned managed identity.
# client_id = os.getenv('AZURE_SQL_USER')
# connection_string = f'Server={server},{port};Database={database};UID={client_id};Authentication=ActiveDirectoryMSI;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
# For service principal.
# user = os.getenv('AZURE_SQL_USER')
# password = os.getenv('AZURE_SQL_PASSWORD')
# connection_string = f'Server={server},{port};Database={database};UID={user};PWD={password};Authentication=ActiveDirectoryServicePrincipal;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
conn = connect(connection_string)
- Instal dependensi.
npm install mssql
- Dapatkan konfigurasi koneksi Azure SQL Database dari variabel lingkungan yang ditambahkan oleh Konektor Layanan. Dalam kode di bawah ini, hapus tanda komentar pada bagian untuk tipe autentikasi Anda.
import sql from 'mssql';
const server = process.env.AZURE_SQL_SERVER;
const database = process.env.AZURE_SQL_DATABASE;
const port = parseInt(process.env.AZURE_SQL_PORT);
const authenticationType = process.env.AZURE_SQL_AUTHENTICATIONTYPE;
// Uncomment the following lines corresponding to the authentication type you want to use.
// For system-assigned managed identity.
// const config = {
// server,
// port,
// database,
// authentication: {
// type: authenticationType
// },
// options: {
// encrypt: true
// }
// };
// For user-assigned managed identity.
// const clientId = process.env.AZURE_SQL_CLIENTID;
// const config = {
// server,
// port,
// database,
// authentication: {
// type: authenticationType
// },
// options: {
// encrypt: true,
// clientId: clientId
// }
// };
// For service principal.
// const clientId = process.env.AZURE_SQL_CLIENTID;
// const clientSecret = process.env.AZURE_SQL_CLIENTSECRET;
// const tenantId = process.env.AZURE_SQL_TENANTID;
// const config = {
// server,
// port,
// database,
// authentication: {
// type: authenticationType
// },
// options: {
// encrypt: true,
// clientId: clientId,
// clientSecret: clientSecret,
// tenantId: tenantId
// }
// };
this.poolconnection = await sql.connect(config);
Untuk informasi selengkapnya, lihat Beranda untuk pemrograman klien ke Microsoft SQL Server.
Rangkaian koneksi
Peringatan
Microsoft menyarankan agar Anda menggunakan alur autentikasi paling aman yang tersedia. Alur autentikasi yang dijelaskan dalam prosedur ini memerlukan tingkat kepercayaan yang tinggi pada aplikasi, dan membawa risiko yang tidak ada di alur lain. Anda hanya boleh menggunakan alur ini ketika alur lain yang lebih aman, seperti identitas terkelola, tidak layak.
| Nama Variabel Lingkungan Default |
Deskripsi |
Nilai sampel |
AZURE_SQL_CONNECTIONSTRING |
String koneksi Azure SQL Database |
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;Password=<sql-password> |
| Nama Variabel Lingkungan Default |
Deskripsi |
Nilai sampel |
AZURE_SQL_CONNECTIONSTRING |
String koneksi Azure SQL Database |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-database>;user=<sql-username>;password=<sql-password>; |
| Nama Variabel Lingkungan Default |
Deskripsi |
Nilai sampel |
spring.datasource.url |
URL sumber data Azure SQL Database |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>; |
spring.datasource.username |
Nama pengguna sumber data Azure SQL Database |
<sql-user> |
spring.datasource.password |
Kata sandi sumber data Azure SQL Database |
<sql-password> |
| Nama Variabel Lingkungan Default |
Deskripsi |
Nilai sampel |
AZURE_SQL_SERVER |
Server Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
Database Azure SQL Database |
<sql-database> |
AZURE_SQL_USER |
Pengguna Azure SQL Database |
<sql-username> |
AZURE_SQL_PASSWORD |
Kata sandi Azure SQL Database |
<sql-password> |
| Nama Variabel Lingkungan Default |
Deskripsi |
Nilai sampel |
AZURE_SQL_HOST |
Pengelola Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port Azure SQL Database |
1433 |
AZURE_SQL_NAME |
Nama Azure SQL Database |
<sql-database> |
AZURE_SQL_USER |
Pengguna Azure SQL Database |
<sql-username> |
AZURE_SQL_PASSWORD |
Kata sandi Azure SQL Database |
<sql-password> |
| Nama Variabel Lingkungan Default |
Deskripsi |
Nilai sampel |
AZURE_SQL_CONNECTIONSTRING |
String koneksi Azure SQL Database |
server=<sql-server>.database.windows.net;port=1433;database=<sql-database>;user id=<sql-username>;password=<sql-password>; |
| Nama Variabel Lingkungan Default |
Deskripsi |
Nilai sampel |
AZURE_SQL_SERVER |
Server Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
Database Azure SQL Database |
<sql-database> |
AZURE_SQL_USERNAME |
Nama pengguna Azure SQL Database |
<sql-username> |
AZURE_SQL_PASSWORD |
Kata sandi Azure SQL Database |
<sql-password> |
| Nama Variabel Lingkungan Default |
Deskripsi |
Nilai sampel |
AZURE_SQL_SERVERNAME |
Nama server Azure SQL Database |
<sql-server>.database.windows.net,1433 |
AZURE_SQL_DATABASE |
Database Azure SQL Database |
<sql-database> |
AZURE_SQL_UID |
Pengidentifikasi unik Azure SQL Database (UID) |
<sql-username> |
AZURE_SQL_PASSWORD |
Kata sandi Azure SQL Database |
<sql-password> |
| Nama Variabel Lingkungan Default |
Deskripsi |
Nilai sampel |
AZURE_SQL_HOST |
Pengelola Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
Database Azure SQL Database |
<sql-database> |
AZURE_SQL_USERNAME |
Nama pengguna Azure SQL Database |
<sql-username> |
AZURE_SQL_PASSWORD |
Kata sandi Azure SQL Database |
<sql-password> |
| Nama Variabel Lingkungan Default |
Deskripsi |
Nilai sampel |
AZURE_SQL_HOST |
Pengelola Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
Database Azure SQL Database |
<sql-database> |
AZURE_SQL_USERNAME |
Nama pengguna Azure SQL Database |
<sql-username> |
AZURE_SQL_PASSWORD |
Kata sandi Azure SQL Database |
<sql-password> |
Contoh kode
Untuk menyambungkan ke Azure SQL Database menggunakan string koneksi, lihat langkah-langkah dan kode sampel berikut.
Instal dependensi.
dotnet add package Microsoft.Data.SqlClient
Dapatkan string koneksi Azure SQL Database dari variabel lingkungan yang ditambahkan oleh Konektor Layanan.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Tambahkan dependensi berikut dalam file pom.xml Anda:
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>10.2.0.jre11</version>
</dependency>
Dapatkan string koneksi Azure SQL Database dari variabel lingkungan yang ditambahkan oleh Konektor Layanan.
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import com.microsoft.sqlserver.jdbc.SQLServerDataSource;
public class Main {
public static void main(String[] args) {
String connectionString = System.getenv("AZURE_SQL_CONNECTIONSTRING");
SQLServerDataSource ds = new SQLServerDataSource();
ds.setURL(connectionString);
try (Connection connection = ds.getConnection()) {
System.out.println("Connected successfully.");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
- Tambahkan dependensi dalam file 'pom.xml' Anda:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-dependencies</artifactId>
<version>5.20.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
- Siapkan aplikasi Spring. Konfigurasi koneksi ditambahkan ke Spring Apps by Service Connector.
Instal dependensi.
python -m pip install mssql-python python-dotenv
Dapatkan konfigurasi koneksi Azure SQL Database dari variabel lingkungan yang ditambahkan oleh Konektor Layanan.
import os
from mssql_python import connect
server = os.getenv('AZURE_SQL_SERVER')
port = os.getenv('AZURE_SQL_PORT')
database = os.getenv('AZURE_SQL_DATABASE')
user = os.getenv('AZURE_SQL_USER')
password = os.getenv('AZURE_SQL_PASSWORD')
connection_string = f'Server={server},{port};Database={database};UID={user};PWD={password};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
conn = connect(connection_string)
Instal dependensi.
pip install django
pip install mssql-django pyodbc
Dalam file pengaturan, dapatkan konfigurasi koneksi Azure SQL Database dari variabel lingkungan yang ditambahkan oleh Konektor Layanan.
# in your setting file, eg. settings.py
server = os.getenv('AZURE_SQL_HOST')
port = os.getenv('AZURE_SQL_PORT')
database = os.getenv('AZURE_SQL_NAME')
user = os.getenv('AZURE_SQL_USER')
password = os.getenv('AZURE_SQL_PASSWORD')
DATABASES = {
'default': {
'ENGINE': 'mssql',
'NAME': database,
'USER': user,
'PASSWORD': password,
'HOST': server,
'PORT': port,
'OPTIONS': {
'driver': 'ODBC Driver 18 for SQL Server',
},
},
}
Instal dependensi.
go install github.com/microsoft/go-mssqldb@latest
Dapatkan string koneksi Azure SQL Database dari variabel lingkungan yang ditambahkan oleh Konektor Layanan.
import (
"context"
"database/sql"
"fmt"
"log"
"github.com/microsoft/go-mssqldb/azuread"
)
connectionString := os.Getenv("AZURE_SQL_CONNECTIONSTRING")
db, err = sql.Open(azuread.DriverName, connString)
if err != nil {
log.Fatal("Error creating connection pool: " + err.Error())
}
log.Printf("Connected!\n")
- Instal dependensi.
npm install mssql
- Dapatkan konfigurasi koneksi Azure SQL Database dari variabel lingkungan yang ditambahkan oleh Konektor Layanan.
import sql from 'mssql';
const server = process.env.AZURE_SQL_SERVER;
const database = process.env.AZURE_SQL_DATABASE;
const port = parseInt(process.env.AZURE_SQL_PORT);
const username = process.env.AZURE_SQL_USERNAME;
const password = process.env.AZURE_SQL_PASSWORD;
const config = {
server,
port,
database,
user,
password,
options: {
encrypt: true
}
};
this.poolconnection = await sql.connect(config);
Unduh Driver Microsoft untuk PHP untuk SQL Server. Untuk informasi selengkapnya, periksa Memulai Driver Microsoft untuk PHP untuk SQL Server.
Dapatkan konfigurasi koneksi Azure SQL Database dari variabel lingkungan yang ditambahkan oleh Konektor Layanan.
<?php
$serverName = getenv("AZURE_SQL_SERVERNAME");
$database = getenv("AZURE_SQL_DATABASE");
$user = getenv("AZURE_SQL_UID");
$password = getenv("AZURE_SQL_PASSWORD");
$connectionOptions = array(
"Database" => $database,
"Uid" => $user,
"PWD" => $password
);
$conn = sqlsrv_connect($serverName, $connectionOptions);
?>
Unduh Ruby Driver untuk SQL Server. Untuk informasi selengkapnya, periksa Mengonfigurasi lingkungan pengembangan untuk pengembangan Ruby.
Dapatkan konfigurasi koneksi Azure SQL Database dari variabel lingkungan yang ditambahkan oleh Konektor Layanan.
client = TinyTds::Client.new username: ENV['AZURE_SQL_USERNAME'], password: ENV['AZURE_SQL_PASSWORD'],
host: ENV['AZURE_SQL_HOST'], port: ENV['AZURE_SQL_PORT'],
database: ENV['AZURE_SQL_DATABASE'], azure:true
Untuk informasi selengkapnya, lihat Beranda untuk pemrograman klien ke Microsoft SQL Server.
Principal layanan
| Nama Variabel Lingkungan Default |
Deskripsi |
Contoh nilai |
AZURE_SQL_CLIENTID |
ID klien Anda |
<client-ID> |
AZURE_SQL_CLIENTSECRET |
Rahasia klien Anda |
<client-secret> |
AZURE_SQL_TENANTID |
ID penyewa Anda |
<tenant-ID> |
AZURE_SQL_CONNECTIONSTRING |
String koneksi Azure SQL Database |
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;User ID=<client-Id>;Password=<client-secret>;Authentication=ActiveDirectoryServicePrincipal |
| Nama Variabel Lingkungan Default |
Deskripsi |
Nilai sampel |
AZURE_SQL_CONNECTIONSTRING |
String koneksi Azure SQL Database |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-database>;user=<client-Id>;password=<client-secret>;authentication=ActiveDirectoryServicePrincipal; |
| Nama Variabel Lingkungan Default |
Deskripsi |
Nilai sampel |
spring.datasource.url |
URL sumber data Azure SQL Database |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryServicePrincipal; |
spring.datasource.username |
Nama pengguna sumber data Azure SQL Database |
<client-Id> |
spring.datasource.password |
Kata sandi sumber data Azure SQL Database |
<client-Secret> |
| Nama Variabel Lingkungan Default |
Deskripsi |
Nilai sampel |
AZURE_SQL_SERVER |
Server Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
Database Azure SQL Database |
<sql-database> |
AZURE_SQL_USER |
Pengguna Azure SQL Database |
your Client Id |
AZURE_SQL_AUTHENTICATION |
Autentikasi Azure SQL |
ActiveDirectoryServerPrincipal |
AZURE_SQL_PASSWORD |
Kata sandi Azure SQL Database |
your Client Secret |
| Nama Variabel Lingkungan Default |
Deskripsi |
Nilai sampel |
AZURE_SQL_SERVER |
Server Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
Database Azure SQL Database |
<sql-database> |
AZURE_SQL_AUTHENTICATIONTYPE |
Jenis autentikasi Azure SQL Database |
azure-active-directory-default |
AZURE_SQL_CLIENTID |
ID klien untuk Azure SQL Database |
<your Client ID> |
AZURE_SQL_CLIENTSECRET |
Rahasia klien Azure SQL Database |
<your Client Secret > |
AZURE_SQL_TENANTID |
ID Pelanggan Azure SQL Database |
<your Tenant ID> |
| Nama Variabel Lingkungan Default |
Deskripsi |
Nilai sampel |
AZURE_SQL_HOST |
Server Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
Database Azure SQL Database |
<sql-database> |
AZURE_SQL_AUTHENTICATION |
Jenis autentikasi Azure SQL Database |
azure-active-directory-default |
AZURE_SQL_USERNAME |
ID klien untuk Azure SQL Database |
<your Client ID> |
AZURE_SQL_PASSWORD |
Rahasia klien Azure SQL Database |
<your Client Secret > |
Contoh kode
Untuk menyambungkan ke Azure SQL Database menggunakan perwakilan layanan, lihat langkah-langkah dan kode sampel berikut.
Instal dependensi.
dotnet add package Microsoft.Data.SqlClient
Dapatkan string koneksi Azure SQL Database dari variabel lingkungan yang ditambahkan oleh Konektor Layanan.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Untuk informasi selengkapnya, lihat Menggunakan autentikasi Identitas Terkelola Direktori Aktif.
Tambahkan dependensi berikut dalam file pom.xml Anda:
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>10.2.0.jre11</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.7.0</version>
</dependency>
Dapatkan string koneksi Azure SQL Database dari variabel lingkungan yang ditambahkan oleh Konektor Layanan.
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import com.microsoft.sqlserver.jdbc.SQLServerDataSource;
public class Main {
public static void main(String[] args) {
// AZURE_SQL_CONNECTIONSTRING should be one of the following:
// For system-assigned managed identity: "jdbc:sqlserver://{SQLName}.database.windows.net:1433;databaseName={SQLDbName};authentication=ActiveDirectoryMSI;"
// For user-assigned managed identity: "jdbc:sqlserver://{SQLName}.database.windows.net:1433;databaseName={SQLDbName};msiClientId={UserAssignedMiClientId};authentication=ActiveDirectoryMSI;"
// For service principal: "jdbc:sqlserver://{SQLName}.database.windows.net:1433;databaseName={SQLDbName};user={ServicePrincipalClientId};password={spSecret};authentication=ActiveDirectoryServicePrincipal;"
String connectionString = System.getenv("AZURE_SQL_CONNECTIONSTRING");
SQLServerDataSource ds = new SQLServerDataSource();
ds.setURL(connectionString);
try (Connection connection = ds.getConnection()) {
System.out.println("Connected successfully.");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Untuk informasi selengkapnya, lihat Menyambungkan ke database Azure dari App Service tanpa rahasia menggunakan identitas terkelola.
Untuk aplikasi Spring, jika Anda membuat koneksi dengan opsi --client-type springboot, Service Connector mengatur properti spring.datasource.url dengan format nilai jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; ke Azure Spring Apps.
Perbarui aplikasi Anda dengan mengikuti tutorial Memigrasikan aplikasi Java untuk menggunakan koneksi tanpa kata sandi dengan Azure SQL Database. Ingatlah untuk menghapus properti konfigurasi spring.datasource.password jika sudah diatur sebelumnya dan tambahkan dependensi yang sesuai.
Instal dependensi.
python -m pip install mssql-python python-dotenv
Dapatkan konfigurasi koneksi Azure SQL Database dari variabel lingkungan yang ditambahkan oleh Konektor Layanan. Dalam kode di bawah ini, hapus tanda komentar pada bagian yang sesuai dengan jenis autentikasi Anda.
import os
from mssql_python import connect
server = os.getenv('AZURE_SQL_SERVER')
port = os.getenv('AZURE_SQL_PORT')
database = os.getenv('AZURE_SQL_DATABASE')
# Uncomment the following lines corresponding to the authentication type you want to use.
# For system-assigned managed identity.
# connection_string = f'Server={server},{port};Database={database};Authentication=ActiveDirectoryMSI;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
# For user-assigned managed identity.
# client_id = os.getenv('AZURE_SQL_USER')
# connection_string = f'Server={server},{port};Database={database};UID={client_id};Authentication=ActiveDirectoryMSI;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
# For service principal.
# user = os.getenv('AZURE_SQL_USER')
# password = os.getenv('AZURE_SQL_PASSWORD')
# connection_string = f'Server={server},{port};Database={database};UID={user};PWD={password};Authentication=ActiveDirectoryServicePrincipal;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
conn = connect(connection_string)
- Instal dependensi.
npm install mssql
- Dapatkan konfigurasi koneksi Azure SQL Database dari variabel lingkungan yang ditambahkan oleh Konektor Layanan. Dalam kode di bawah ini, hapus tanda komentar pada bagian yang sesuai dengan jenis autentikasi Anda.
import sql from 'mssql';
const server = process.env.AZURE_SQL_SERVER;
const database = process.env.AZURE_SQL_DATABASE;
const port = parseInt(process.env.AZURE_SQL_PORT);
const authenticationType = process.env.AZURE_SQL_AUTHENTICATIONTYPE;
// Uncomment the following lines corresponding to the authentication type you want to use.
// For system-assigned managed identity.
// const config = {
// server,
// port,
// database,
// authentication: {
// type: authenticationType
// },
// options: {
// encrypt: true
// }
// };
// For user-assigned managed identity.
// const clientId = process.env.AZURE_SQL_CLIENTID;
// const config = {
// server,
// port,
// database,
// authentication: {
// type: authenticationType
// },
// options: {
// encrypt: true,
// clientId: clientId
// }
// };
// For service principal.
// const clientId = process.env.AZURE_SQL_CLIENTID;
// const clientSecret = process.env.AZURE_SQL_CLIENTSECRET;
// const tenantId = process.env.AZURE_SQL_TENANTID;
// const config = {
// server,
// port,
// database,
// authentication: {
// type: authenticationType
// },
// options: {
// encrypt: true,
// clientId: clientId,
// clientSecret: clientSecret,
// tenantId: tenantId
// }
// };
this.poolconnection = await sql.connect(config);
Untuk informasi selengkapnya, lihat Beranda untuk pemrograman klien ke Microsoft SQL Server.
Langkah selanjutnya
Untuk mempelajari selengkapnya tentang Konektor Layanan, lihat tutorial berikut.