Bu makalede, Service Connector kullanarak uygulamalarınızı Azure SQL Veritabanı'na bağlamak için kullanabileceğiniz desteklenen kimlik doğrulama yöntemlerini ve istemcilerini ele alacağız. Desteklenen her yöntem için örnek kod sağlar ve hizmet bağlantısı oluştururken elde edilen varsayılan ortam değişkeni adlarını, değerlerini ve yapılandırmasını açıklarız.
Desteklenen işlem hizmetleri
Hizmet Bağlayıcısı, aşağıdaki işlem hizmetlerini Azure SQL Veritabanı bağlamak için kullanılabilir:
- Azure App Service
- Azure İşlevleri
- Azure Kubernetes Hizmeti (AKS)
- Azure Spring Apps
Desteklenen kimlik doğrulama türleri ve istemcileri
Aşağıdaki tabloda, hizmet bağlayıcısını kullanarak işlem hizmetinizi Azure SQL Veritabanı'na bağlamak için hangi kimlik doğrulama yöntemlerinin ve istemcilerinin desteklendiği gösterilmektedir.
Evet, birleşimin desteklendiğini, Hayır ise desteklenmediğini belirtir.
| İstemci türü |
Sistem tarafından atanan yönetilen kimlik |
Kullanıcı tarafından atanan yönetilen kimlik |
Gizli dizi/bağlantı dizgisi |
Hizmet sorumlusu |
| .NET |
Yes |
Yes |
Yes |
Yes |
| Go |
Hayır |
Hayır |
Yes |
Hayır |
| Java |
Yes |
Yes |
Yes |
Yes |
| Java - Spring Boot |
Yes |
Yes |
Yes |
Yes |
| Node.js |
Yes |
Yes |
Yes |
Yes |
| PHP |
Hayır |
Hayır |
Yes |
Hayır |
| Python |
Yes |
Yes |
Yes |
Yes |
| Python - Django |
Hayır |
Hayır |
Yes |
Hayır |
| Ruby |
Hayır |
Hayır |
Yes |
Hayır |
| None |
Yes |
Yes |
Yes |
Yes |
Not
Sistem tarafından atanan yönetilen kimlik, kullanıcı tarafından atanan yönetilen kimlik ve hizmet sorumlusu kimlik doğrulaması yalnızca Azure CLI'da desteklenir.
Varsayılan ortam değişkeni adları veya uygulama özellikleri ve örnek kod
İşlem hizmetlerini Azure SQL Veritabanı'na bağlamak için aşağıdaki bağlantı ayrıntılarını kullanın. Her örnek için , , <sql-server><sql-database>ve <sql-username> yer tutucu metinlerini <sql-password>kendi sunucu adınız, veritabanı adınız, kullanıcı kimliğiniz ve parolanızla değiştirin. Adlandırma kuralları hakkında daha fazla bilgi için Hizmet Bağlayıcısı iç bilgileri makalesine bakın.
Sistem tarafından atanan yönetilen kimlik
| Varsayılan ortam değişkeni adı |
Açıklama |
Örnek değer |
AZURE_SQL_CONNECTIONSTRING |
Azure SQL Veritabanı bağlantı dizesi |
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;Authentication=ActiveDirectoryManagedIdentity |
| Varsayılan ortam değişkeni adı |
Açıklama |
Örnek değer |
AZURE_SQL_CONNECTIONSTRING |
Azure SQL Veritabanı bağlantı dizesi |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-database>;authentication=ActiveDirectoryMSI; |
| Varsayılan ortam değişkeni adı |
Açıklama |
Örnek değer |
spring.datasource.url |
Azure SQL Veritabanı veri kaynağı URL'si |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; |
| Varsayılan ortam değişkeni adı |
Açıklama |
Örnek değer |
AZURE_SQL_SERVER |
Azure SQL Veritabanı sunucusu |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Azure SQL Veritabanı bağlantı noktası |
1433 |
AZURE_SQL_DATABASE |
Azure SQL Veritabanı |
<sql-database> |
AZURE_SQL_AUTHENTICATION |
Azure SQL kimlik doğrulaması |
ActiveDirectoryMsi |
| Varsayılan ortam değişkeni adı |
Açıklama |
Örnek değer |
AZURE_SQL_SERVER |
Azure SQL Veritabanı sunucusu |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Azure SQL Veritabanı bağlantı noktası |
1433 |
AZURE_SQL_DATABASE |
Azure SQL Veritabanı |
<sql-database> |
AZURE_SQL_AUTHENTICATIONTYPE |
Azure SQL Veritabanı kimlik doğrulama türü |
azure-active-directory-default |
| Varsayılan ortam değişkeni adı |
Açıklama |
Örnek değer |
AZURE_SQL_HOST |
Azure SQL Veritabanı sunucusu |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Azure SQL Veritabanı bağlantı noktası |
1433 |
AZURE_SQL_DATABASE |
Azure SQL Veritabanı |
<sql-database> |
AZURE_SQL_AUTHENTICATION |
Azure SQL Veritabanı kimlik doğrulama türü |
azure-active-directory-default |
Örnek kod
Sistem tarafından atanan yönetilen kimliği kullanarak Azure SQL Veritabanı'na bağlanmak için aşağıdaki adımlara ve örnek koda bakın.
Bağımlılıkları yükleyin.
dotnet add package Microsoft.Data.SqlClient
Service Connector tarafından eklenen ortam değişkeninden Azure SQL Veritabanı bağlantı dizesi alın.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Daha fazla bilgi için bkz. Active Directory Yönetilen Kimlik kimlik doğrulamasını kullanma.
pom.xml dosyanıza aşağıdaki bağımlılıkları ekleyin:
<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>
Service Connector tarafından eklenen ortam değişkeninden Azure SQL Veritabanı bağlantı dizesi alın.
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();
}
}
}
Daha fazla bilgi için Yönetilen kimlik kullanarak gizli anahtarlar olmadan App Service'ten Azure veritabanlarına bağlanma konusuna bakın.
Spring uygulaması için --client-type springboot seçeneğiyle bir bağlantı oluşturursanız, Hizmet Bağlayıcısı, değer formatı spring.datasource.url olan jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; özelliklerini Azure Spring Apps'e ayarlar.
Java uygulamasını Azure SQL Veritabanı ile parolasız bağlantılar kullanacak şekilde geçirme öğreticisini izleyerek uygulamanızı güncelleştirin. Daha önce ayarlanmışsa yapılandırma özelliğini kaldırmayı spring.datasource.password ve doğru bağımlılıkları eklemeyi unutmayın.
Bağımlılıkları yükleyin.
python -m pip install mssql-python python-dotenv
Service Connector tarafından eklenen ortam değişkeninden Azure SQL Veritabanı bağlantı yapılandırmalarını alın. Aşağıdaki kodda, kimlik doğrulama türünüze ait bölümün yorum işaretini kaldırın.
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)
- Bağımlılıkları yükleyin.
npm install mssql
- Hizmet Bağlayıcısı tarafından eklenen ortam değişkenlerinden Azure SQL Veritabanı bağlantı yapılandırmalarını alın. Aşağıdaki kodda, kimlik doğrulama türünüze ait bölümün yorum satırını kaldırın.
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);
Daha fazla bilgi için Microsoft SQL Server'a istemci programlaması için Giriş sayfası bölümüne bakın.
Kullanıcı tarafından atanan yönetilen kimlik
| Varsayılan ortam değişkeni adı |
Açıklama |
Örnek değer |
AZURE_SQL_CONNECTIONSTRING |
Azure SQL Veritabanı bağlantı dizesi |
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;User ID=<identity-client-ID>;Authentication=ActiveDirectoryManagedIdentity |
| Varsayılan ortam değişkeni adı |
Açıklama |
Örnek değer |
AZURE_SQL_CONNECTIONSTRING |
Azure SQL Veritabanı bağlantı dizesi |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-database>;msiClientId=<msiClientId>;authentication=ActiveDirectoryMSI; |
| Varsayılan ortam değişkeni adı |
Açıklama |
Örnek değer |
spring.datasource.url |
Azure SQL Veritabanı veri kaynağı URL'si |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;msiClientId=<msiClientId>;authentication=ActiveDirectoryMSI; |
| Varsayılan ortam değişkeni adı |
Açıklama |
Örnek değer |
AZURE_SQL_SERVER |
Azure SQL Veritabanı sunucusu |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Azure SQL Veritabanı bağlantı noktası |
1433 |
AZURE_SQL_DATABASE |
Azure SQL Veritabanı |
<sql-database> |
AZURE_SQL_USER |
Azure SQL Veritabanı kullanıcı |
Object (principal) ID |
AZURE_SQL_AUTHENTICATION |
Azure SQL kimlik doğrulaması |
ActiveDirectoryMsi |
| Varsayılan ortam değişkeni adı |
Açıklama |
Örnek değer |
AZURE_SQL_SERVER |
Azure SQL Veritabanı sunucusu |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Azure SQL Veritabanı bağlantı noktası |
1433 |
AZURE_SQL_DATABASE |
Azure SQL Veritabanı |
<sql-database> |
AZURE_SQL_AUTHENTICATIONTYPE |
Azure SQL Veritabanı kimlik doğrulama türü |
azure-active-directory-default |
AZURE_SQL_CLIENTID |
Azure SQL Veritabanı istemci kimliği |
<identity-client-ID> |
| Varsayılan ortam değişkeni adı |
Açıklama |
Örnek değer |
AZURE_SQL_HOST |
Azure SQL Veritabanı sunucusu |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Azure SQL Veritabanı bağlantı noktası |
1433 |
AZURE_SQL_DATABASE |
Azure SQL Veritabanı |
<sql-database> |
AZURE_SQL_AUTHENTICATION |
Azure SQL Veritabanı kimlik doğrulama türü |
azure-active-directory-default |
AZURE_SQL_USERNAME |
Azure SQL Veritabanı istemci kimliği |
<your Client ID> |
Örnek kod
Kullanıcı tarafından atanan yönetilen kimliği kullanarak Azure SQL Veritabanı'na bağlanmak için aşağıdaki adımlara ve örnek koda bakın.
Bağımlılıkları yükleyin.
dotnet add package Microsoft.Data.SqlClient
Service Connector tarafından eklenen ortam değişkeninden Azure SQL Veritabanı bağlantı dizesi alın.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Daha fazla bilgi için bkz. Active Directory Yönetilen Kimlik kimlik doğrulamasını kullanma.
pom.xml dosyanıza aşağıdaki bağımlılıkları ekleyin:
<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>
Service Connector tarafından eklenen ortam değişkeninden Azure SQL Veritabanı bağlantı dizesi alın.
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();
}
}
}
Daha fazla bilgi için Yönetilen kimlik kullanarak gizli anahtarlar olmadan App Service'ten Azure veritabanlarına bağlanma konusuna bakın.
Spring uygulaması için --client-type springboot seçeneğiyle bir bağlantı oluşturursanız, Hizmet Bağlayıcısı, değer formatı spring.datasource.url olan jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; özelliklerini Azure Spring Apps'e ayarlar.
Java uygulamasını Azure SQL Veritabanı ile parolasız bağlantılar kullanacak şekilde geçirme öğreticisini izleyerek uygulamanızı güncelleştirin. Daha önce ayarlanmışsa yapılandırma özelliğini kaldırmayı spring.datasource.password ve doğru bağımlılıkları eklemeyi unutmayın.
Bağımlılıkları yükleyin.
python -m pip install mssql-python python-dotenv
Service Connector tarafından eklenen ortam değişkeninden Azure SQL Veritabanı bağlantı yapılandırmalarını alın. Aşağıdaki kodda, kimlik doğrulama türünüze ait bölümün yorum işaretini kaldırın.
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)
- Bağımlılıkları yükleyin.
npm install mssql
- Hizmet Bağlayıcısı tarafından eklenen ortam değişkenlerinden Azure SQL Veritabanı bağlantı yapılandırmalarını alın. Aşağıdaki kodda, kimlik doğrulama türünüze uygun bölümün yorum işaretini kaldırın.
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);
Daha fazla bilgi için Microsoft SQL Server'a istemci programlaması için Giriş sayfası bölümüne bakın.
Bağlantı dizesi
Uyarı
Microsoft, kullanılabilir en güvenli kimlik doğrulama akışını kullanmanızı önerir. Bu yordamda açıklanan kimlik doğrulama akışı, uygulamada yüksek düzeyde güven gerektirir ve diğer akışlarda mevcut olmayan riskleri taşır. Bu akışı yalnızca yönetilen kimlikler gibi diğer daha güvenli akışlar uygun olmadığında kullanmalısınız.
| Varsayılan ortam değişkeni adı |
Açıklama |
Örnek değer |
AZURE_SQL_CONNECTIONSTRING |
Azure SQL Veritabanı bağlantı dizesi |
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;Password=<sql-password> |
| Varsayılan ortam değişkeni adı |
Açıklama |
Örnek değer |
AZURE_SQL_CONNECTIONSTRING |
Azure SQL Veritabanı bağlantı dizesi |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-database>;user=<sql-username>;password=<sql-password>; |
| Varsayılan ortam değişkeni adı |
Açıklama |
Örnek değer |
spring.datasource.url |
Azure SQL Veritabanı veri kaynağı URL'si |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>; |
spring.datasource.username |
Azure SQL Veritabanı veri kaynağı kullanıcı adı |
<sql-user> |
spring.datasource.password |
Azure SQL Veritabanı veri kaynağı parolası |
<sql-password> |
| Varsayılan ortam değişkeni adı |
Açıklama |
Örnek değer |
AZURE_SQL_SERVER |
Azure SQL Veritabanı sunucusu |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Azure SQL Veritabanı bağlantı noktası |
1433 |
AZURE_SQL_DATABASE |
Azure SQL Veritabanı |
<sql-database> |
AZURE_SQL_USER |
Azure SQL Veritabanı kullanıcı |
<sql-username> |
AZURE_SQL_PASSWORD |
Azure SQL Veritabanı parolası |
<sql-password> |
| Varsayılan ortam değişkeni adı |
Açıklama |
Örnek değer |
AZURE_SQL_HOST |
Azure SQL Veritabanı konağı |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Azure SQL Veritabanı bağlantı noktası |
1433 |
AZURE_SQL_NAME |
Azure SQL Veritabanı adı |
<sql-database> |
AZURE_SQL_USER |
Azure SQL Veritabanı kullanıcı |
<sql-username> |
AZURE_SQL_PASSWORD |
Azure SQL Veritabanı parolası |
<sql-password> |
| Varsayılan ortam değişkeni adı |
Açıklama |
Örnek değer |
AZURE_SQL_CONNECTIONSTRING |
Azure SQL Veritabanı bağlantı dizesi |
server=<sql-server>.database.windows.net;port=1433;database=<sql-database>;user id=<sql-username>;password=<sql-password>; |
| Varsayılan ortam değişkeni adı |
Açıklama |
Örnek değer |
AZURE_SQL_SERVER |
Azure SQL Veritabanı sunucusu |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Azure SQL Veritabanı bağlantı noktası |
1433 |
AZURE_SQL_DATABASE |
Azure SQL Veritabanı |
<sql-database> |
AZURE_SQL_USERNAME |
Azure SQL Veritabanı kullanıcı adı |
<sql-username> |
AZURE_SQL_PASSWORD |
Azure SQL Veritabanı parolası |
<sql-password> |
| Varsayılan ortam değişkeni adı |
Açıklama |
Örnek değer |
AZURE_SQL_SERVERNAME |
Azure SQL Veritabanı sunucu adı |
<sql-server>.database.windows.net,1433 |
AZURE_SQL_DATABASE |
Azure SQL Veritabanı |
<sql-database> |
AZURE_SQL_UID |
Azure SQL Veritabanı benzersiz tanımlayıcı (UID) |
<sql-username> |
AZURE_SQL_PASSWORD |
Azure SQL Veritabanı parolası |
<sql-password> |
| Varsayılan ortam değişkeni adı |
Açıklama |
Örnek değer |
AZURE_SQL_HOST |
Azure SQL Veritabanı konağı |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Azure SQL Veritabanı bağlantı noktası |
1433 |
AZURE_SQL_DATABASE |
Azure SQL Veritabanı |
<sql-database> |
AZURE_SQL_USERNAME |
Azure SQL Veritabanı kullanıcı adı |
<sql-username> |
AZURE_SQL_PASSWORD |
Azure SQL Veritabanı parolası |
<sql-password> |
| Varsayılan ortam değişkeni adı |
Açıklama |
Örnek değer |
AZURE_SQL_HOST |
Azure SQL Veritabanı konağı |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Azure SQL Veritabanı bağlantı noktası |
1433 |
AZURE_SQL_DATABASE |
Azure SQL Veritabanı |
<sql-database> |
AZURE_SQL_USERNAME |
Azure SQL Veritabanı kullanıcı adı |
<sql-username> |
AZURE_SQL_PASSWORD |
Azure SQL Veritabanı parolası |
<sql-password> |
Örnek kod
Bir bağlantı dizesi kullanarak Azure SQL Veritabanı'na bağlanmak için aşağıdaki adımlara ve örnek koda bakın.
Bağımlılıkları yükleyin.
dotnet add package Microsoft.Data.SqlClient
Service Connector tarafından eklenen ortam değişkeninden Azure SQL Veritabanı bağlantı dizesi alın.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
pom.xml dosyanıza aşağıdaki bağımlılıkları ekleyin:
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>10.2.0.jre11</version>
</dependency>
Service Connector tarafından eklenen ortam değişkeninden Azure SQL Veritabanı bağlantı dizesi alın.
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();
}
}
}
- 'pom.xml' dosyanıza bağımlılık ekleyin:
<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>
- Spring uygulamasını ayarlayın. Bağlantı yapılandırmaları Service Connector tarafından Spring Apps'e eklenir.
Bağımlılıkları yükleyin.
python -m pip install mssql-python python-dotenv
Service Connector tarafından eklenen ortam değişkeninden Azure SQL Veritabanı bağlantı yapılandırmalarını alın.
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)
Bağımlılıkları yükleyin.
pip install django
pip install mssql-django pyodbc
Ayar dosyasında, Service Connector tarafından eklenen ortam değişkeninden Azure SQL Veritabanı bağlantı yapılandırmalarını alın.
# 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',
},
},
}
Bağımlılığı yükleyin.
go install github.com/microsoft/go-mssqldb@latest
Service Connector tarafından eklenen ortam değişkeninden Azure SQL Veritabanı bağlantı dizesi alın.
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")
- Bağımlılıkları yükleyin.
npm install mssql
- Hizmet Bağlayıcısı tarafından eklenen ortam değişkenlerinden Azure SQL Veritabanı bağlantı yapılandırmalarını alın.
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);
SQL Server için PHP için Microsoft Sürücüleri'ni indirin. Daha fazla bilgi için SQL Server için PHP için Microsoft Sürücüleri ile Başlarken başlığını inceleyin.
Hizmet Bağlayıcısı tarafından eklenen ortam değişkenlerinden Azure SQL Veritabanı bağlantı yapılandırmalarını alın.
<?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);
?>
SQL Server için Ruby Driver'ı indirin. Daha fazla bilgi için Ruby geliştirme için geliştirme ortamını yapılandırma bölümüne bkz. .
Hizmet Bağlayıcısı tarafından eklenen ortam değişkenlerinden Azure SQL Veritabanı bağlantı yapılandırmalarını alın.
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
Daha fazla bilgi için Microsoft SQL Server'a istemci programlaması için Giriş sayfası bölümüne bakın.
Hizmet sorumlusu
| Varsayılan ortam değişkeni adı |
Açıklama |
Örnek değer |
AZURE_SQL_CLIENTID |
İstemci kimliğiniz |
<client-ID> |
AZURE_SQL_CLIENTSECRET |
İstemcinizin gizli anahtarı |
<client-secret> |
AZURE_SQL_TENANTID |
Kiracı kimliğiniz |
<tenant-ID> |
AZURE_SQL_CONNECTIONSTRING |
Azure SQL Veritabanı bağlantı dizesi |
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;User ID=<client-Id>;Password=<client-secret>;Authentication=ActiveDirectoryServicePrincipal |
| Varsayılan ortam değişkeni adı |
Açıklama |
Örnek değer |
AZURE_SQL_CONNECTIONSTRING |
Azure SQL Veritabanı bağlantı dizesi |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-database>;user=<client-Id>;password=<client-secret>;authentication=ActiveDirectoryServicePrincipal; |
| Varsayılan ortam değişkeni adı |
Açıklama |
Örnek değer |
spring.datasource.url |
Azure SQL Veritabanı veri kaynağı URL'si |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryServicePrincipal; |
spring.datasource.username |
Azure SQL Veritabanı veri kaynağı kullanıcı adı |
<client-Id> |
spring.datasource.password |
Azure SQL Veritabanı veri kaynağı parolası |
<client-Secret> |
| Varsayılan ortam değişkeni adı |
Açıklama |
Örnek değer |
AZURE_SQL_SERVER |
Azure SQL Veritabanı sunucusu |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Azure SQL Veritabanı bağlantı noktası |
1433 |
AZURE_SQL_DATABASE |
Azure SQL Veritabanı |
<sql-database> |
AZURE_SQL_USER |
Azure SQL Veritabanı kullanıcı |
your Client Id |
AZURE_SQL_AUTHENTICATION |
Azure SQL kimlik doğrulaması |
ActiveDirectoryServerPrincipal |
AZURE_SQL_PASSWORD |
Azure SQL Veritabanı parolası |
your Client Secret |
| Varsayılan ortam değişkeni adı |
Açıklama |
Örnek değer |
AZURE_SQL_SERVER |
Azure SQL Veritabanı sunucusu |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Azure SQL Veritabanı bağlantı noktası |
1433 |
AZURE_SQL_DATABASE |
Azure SQL Veritabanı |
<sql-database> |
AZURE_SQL_AUTHENTICATIONTYPE |
Azure SQL Veritabanı kimlik doğrulama türü |
azure-active-directory-default |
AZURE_SQL_CLIENTID |
Azure SQL Veritabanı istemci kimliği |
<your Client ID> |
AZURE_SQL_CLIENTSECRET |
Azure SQL Veritabanı İstemci Gizli Anahtarı |
<your Client Secret > |
AZURE_SQL_TENANTID |
Azure SQL Veritabanı Kiracı Kimliği |
<your Tenant ID> |
| Varsayılan ortam değişkeni adı |
Açıklama |
Örnek değer |
AZURE_SQL_HOST |
Azure SQL Veritabanı sunucusu |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Azure SQL Veritabanı bağlantı noktası |
1433 |
AZURE_SQL_DATABASE |
Azure SQL Veritabanı |
<sql-database> |
AZURE_SQL_AUTHENTICATION |
Azure SQL Veritabanı kimlik doğrulama türü |
azure-active-directory-default |
AZURE_SQL_USERNAME |
Azure SQL Veritabanı istemci kimliği |
<your Client ID> |
AZURE_SQL_PASSWORD |
Azure SQL Veritabanı İstemci Gizli Anahtarı |
<your Client Secret > |
Örnek kod
Hizmet sorumlusu kullanarak Azure SQL Veritabanı'na bağlanmak için aşağıdaki adımlara ve örnek koda bakın.
Bağımlılıkları yükleyin.
dotnet add package Microsoft.Data.SqlClient
Service Connector tarafından eklenen ortam değişkeninden Azure SQL Veritabanı bağlantı dizesi alın.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Daha fazla bilgi için bkz. Active Directory Yönetilen Kimlik kimlik doğrulamasını kullanma.
pom.xml dosyanıza aşağıdaki bağımlılıkları ekleyin:
<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>
Service Connector tarafından eklenen ortam değişkeninden Azure SQL Veritabanı bağlantı dizesi alın.
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();
}
}
}
Daha fazla bilgi için Yönetilen kimlik kullanarak gizli anahtarlar olmadan App Service'ten Azure veritabanlarına bağlanma konusuna bakın.
Spring uygulaması için --client-type springboot seçeneğiyle bir bağlantı oluşturursanız, Hizmet Bağlayıcısı, değer formatı spring.datasource.url olan jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; özelliklerini Azure Spring Apps'e ayarlar.
Java uygulamasını Azure SQL Veritabanı ile parolasız bağlantılar kullanacak şekilde geçirme öğreticisini izleyerek uygulamanızı güncelleştirin. Daha önce ayarlanmışsa yapılandırma özelliğini kaldırmayı spring.datasource.password ve doğru bağımlılıkları eklemeyi unutmayın.
Bağımlılıkları yükleyin.
python -m pip install mssql-python python-dotenv
Service Connector tarafından eklenen ortam değişkeninden Azure SQL Veritabanı bağlantı yapılandırmalarını alın. Aşağıdaki kodda, kimlik doğrulama türünüze ait bölümü yorumdan çıkarın.
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)
- Bağımlılıkları yükleyin.
npm install mssql
- Hizmet Bağlayıcısı tarafından eklenen ortam değişkenlerinden Azure SQL Veritabanı bağlantı yapılandırmalarını alın. Aşağıdaki kodda, kimlik doğrulama türünüze ait bölümün yorum işaretini kaldırın.
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);
Daha fazla bilgi için Microsoft SQL Server'a istemci programlaması için Giriş sayfası bölümüne bakın.
Sonraki adımlar
Service Connector hakkında daha fazla bilgi edinmek için aşağıdaki öğreticiye bakın.