Intégrer Azure SQL Database avec Service Connector
Article
Cette page présente les méthodes d’authentification et les clients pris en charge, et fournit des exemples de code que vous pouvez utiliser pour connecter des services de calcul à Azure SQL Database à l’aide d’un connecteur de services. Vous pouvez toujours vous connecter à Azure SQL Database à l’aide d’autres méthodes. Cette page indique également les noms et les valeurs des variables d'environnement par défaut que vous obtenez lorsque vous créez la connexion du service.
Service de calcul pris en charge
Le connecteur de services peut être utilisé pour connecter les services de calcul suivants à Azure SQL Database :
Azure App Service
Azure Container Apps
Azure Functions
Azure Kubernetes Service (AKS)
Azure Spring Apps
Types d’authentification et clients pris en charge
Le tableau ci-dessous montre les combinaisons méthodes d’authentification/clients prises en charge pour connecter votre service de calcul à Azure SQL Database à l’aide du connecteur de services. « Oui » indique que la combinaison est prise en charge, tandis que « Non » indique qu’elle n’est pas prise en charge.
Type de client
Identité managée affectée par le système
Identité managée affectée par l’utilisateur
Secret/chaîne de connexion
Principal du service
.NET
Oui
Oui
Oui
Oui
Go
Non
Non
Oui
Non
Java
Oui
Oui
Oui
Oui
Java - Spring Boot
Oui
Oui
Oui
Oui
Node.js
Oui
Oui
Oui
Oui
PHP
Non
Non
Oui
Non
Python
Oui
Oui
Oui
Oui
Python - Django
Non
Non
Oui
Non
Ruby
Non
Non
Oui
Non
Aucun
Oui
Oui
Oui
Oui
Ce tableau indique que la méthode Secret/chaîne de connexion est prise en charge pour tous les types de clients. Les méthodes Identité managée affectée par le système, Identité managée affectée par l’utilisateur et Principal de service sont prises en charge pour les types de clients .NET, Java, Java - Spring Boot, Node.js, Python et None. Ces méthodes ne sont pas prises en charge pour les types de client Go, PHP, Django et Ruby.
Remarque
L’Identité managée affectée par le système, l’Identité managée affectée par l’utilisateur et le Principal de service sont uniquement pris en charge sur Azure CLI.
Noms des variables d’environnement par défaut ou propriétés de l’application et exemple de code
Utilisez les informations de connexion ci-dessous pour connecter des services de calcul à Azure SQL Database. Pour chaque exemple ci-dessous, remplacez les textes d’espace réservé <sql-server>, <sql-database>, <sql-username> et <sql-password> par le nom de votre propre serveur, le nom de la base de données, l’ID d’utilisateur et le mot de passe. Pour plus d’informations sur les conventions d’affectation de noms, consultez l’article Services internes du connecteur de services.
Obtenez la chaîne de connexion Azure SQL Database à partir de la variable d’environnement ajoutée par le connecteur de services.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Obtenez la chaîne de connexion Azure SQL Database à partir de la variable d’environnement ajoutée par le connecteur de services.
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();
}
}
}
Pour une application Spring, si vous créez une connexion avec l’option --client-type springboot, Service Connector définit les propriétés spring.datasource.url au format valeur jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; sur Azure Spring Apps.
Obtenez les configurations de connexion Azure SQL Database à partir de la variable d’environnement ajoutée par le connecteur de services. Lorsque vous utilisez le code ci-dessous, supprimez les marques de commentaire de la partie de l’extrait de code pour le type d’authentification que vous souhaitez utiliser. Si vous utilisez Azure Container Apps comme service de calcul ou que la chaîne de connexion dans l’extrait de code ne fonctionne pas, reportez-vous à Migrer une application Python pour utiliser des connexions sans mot de passe avec Azure SQL Database pour vous connecter à Azure SQL Database à l’aide d’un jeton d’accès.
import os
import pyodbc
server = os.getenv('AZURE_SQL_SERVER')
port = os.getenv('AZURE_SQL_PORT')
database = os.getenv('AZURE_SQL_DATABASE')
authentication = os.getenv('AZURE_SQL_AUTHENTICATION')
# Uncomment the following lines corresponding to the authentication type you want to use.
# For system-assigned managed identity.
# connString = f'Driver={{ODBC Driver 18 for SQL Server}};Server=tcp:{server},{port};Database={database};Authentication={authentication};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
# For user-assigned managed identity.
# clientID = os.getenv('AZURE_SQL_USER')
# connString = f'Driver={{ODBC Driver 18 for SQL Server}};Server=tcp:{server},{port};Database={database};UID={clientID};Authentication={authentication};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
# For service principal.
# user = os.getenv('AZURE_SQL_USER')
# password = os.getenv('AZURE_SQL_PASSWORD')
# connString = f'Driver={{ODBC Driver 18 for SQL Server}};Server=tcp:{server},{port};Database={database};UID={user};PWD={password};Authentication={authentication};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
conn = pyodbc.connect(connString)
Installez des dépendances.
npm install mssql
Obtenez les configurations de connexion Azure SQL Database à partir des variables d’environnement ajoutées par le connecteur de services. Lorsque vous utilisez le code ci-dessous, supprimez les marques de commentaire de la partie de l’extrait de code pour le type d’authentification que vous souhaitez utiliser.
Pour les autres langages, utilisez les propriétés de connexion définis par le connecteur de services dans les variables d’environnement pour connecter la base de données. Pour plus d’informations sur les variables d’environnement, consultez l’article Intégrer Azure SQL Database avec Service Connector.
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;User ID=<identity-client-ID>;Authentication=ActiveDirectoryManagedIdentity
Obtenez la chaîne de connexion Azure SQL Database à partir de la variable d’environnement ajoutée par le connecteur de services.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Obtenez la chaîne de connexion Azure SQL Database à partir de la variable d’environnement ajoutée par le connecteur de services.
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();
}
}
}
Pour une application Spring, si vous créez une connexion avec l’option --client-type springboot, Service Connector définit les propriétés spring.datasource.url au format valeur jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; sur Azure Spring Apps.
Obtenez les configurations de connexion Azure SQL Database à partir de la variable d’environnement ajoutée par le connecteur de services. Lorsque vous utilisez le code ci-dessous, supprimez les marques de commentaire de la partie de l’extrait de code pour le type d’authentification que vous souhaitez utiliser. Si vous utilisez Azure Container Apps comme service de calcul ou que la chaîne de connexion dans l’extrait de code ne fonctionne pas, reportez-vous à Migrer une application Python pour utiliser des connexions sans mot de passe avec Azure SQL Database pour vous connecter à Azure SQL Database à l’aide d’un jeton d’accès.
import os
import pyodbc
server = os.getenv('AZURE_SQL_SERVER')
port = os.getenv('AZURE_SQL_PORT')
database = os.getenv('AZURE_SQL_DATABASE')
authentication = os.getenv('AZURE_SQL_AUTHENTICATION')
# Uncomment the following lines corresponding to the authentication type you want to use.
# For system-assigned managed identity.
# connString = f'Driver={{ODBC Driver 18 for SQL Server}};Server=tcp:{server},{port};Database={database};Authentication={authentication};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
# For user-assigned managed identity.
# clientID = os.getenv('AZURE_SQL_USER')
# connString = f'Driver={{ODBC Driver 18 for SQL Server}};Server=tcp:{server},{port};Database={database};UID={clientID};Authentication={authentication};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
# For service principal.
# user = os.getenv('AZURE_SQL_USER')
# password = os.getenv('AZURE_SQL_PASSWORD')
# connString = f'Driver={{ODBC Driver 18 for SQL Server}};Server=tcp:{server},{port};Database={database};UID={user};PWD={password};Authentication={authentication};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
conn = pyodbc.connect(connString)
Installez des dépendances.
npm install mssql
Obtenez les configurations de connexion Azure SQL Database à partir des variables d’environnement ajoutées par le connecteur de services. Lorsque vous utilisez le code ci-dessous, supprimez les marques de commentaire de la partie de l’extrait de code pour le type d’authentification que vous souhaitez utiliser.
Pour les autres langages, utilisez les propriétés de connexion définis par le connecteur de services dans les variables d’environnement pour connecter la base de données. Pour plus d’informations sur les variables d’environnement, consultez l’article Intégrer Azure SQL Database avec Service Connector.
Microsoft vous recommande d’utiliser le flux d’authentification le plus sécurisé disponible. Le flux d'authentification décrit dans cette procédure demande un degré de confiance très élevé dans l'application et comporte des risques qui ne sont pas présents dans d'autres flux. Vous ne devez utiliser ce flux que si d’autres flux plus sécurisés, tels que les identités managées, ne sont pas viables.
Obtenez la chaîne de connexion Azure SQL Database à partir de la variable d’environnement ajoutée par le connecteur de services.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Ajoutez les dépendances suivantes dans votre fichier pom.xml :
Configurez l’application Spring. Les configurations de connexion sont ajoutées à Spring Apps par le Connecteur de services.
Installez des dépendances.
python -m pip install pyodbc
Obtenez les configurations de connexion Azure SQL Database à partir de la variable d’environnement ajoutée par le connecteur de services.
import os;
import pyodbc
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')
connString = f'Driver={{ODBC Driver 18 for SQL Server}};Server={server},{port};Database={database};UID={user};PWD={password};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
conn = pyodbc.connect(connString)
Installez des dépendances.
pip install django
pip install pyodbc
Dans le fichier de paramètres, obtenez les configurations de connexion Azure SQL Database à partir de la variable d’environnement ajoutée par le connecteur de services.
# 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': 'sql_server.pyodbc',
'NAME': databse,
'USER': user,
'PASSWORD': password,
'HOST': server,
'PORT': port,
'OPTIONS': {
'driver': 'ODBC Driver 13 for SQL Server',
},
},
}
Installez la dépendance.
go install github.com/microsoft/go-mssqldb@latest
Obtenez la chaîne de connexion Azure SQL Database à partir de la variable d’environnement ajoutée par le connecteur de services.
Pour les autres langages, utilisez les propriétés de connexion définis par le connecteur de services dans les variables d’environnement pour connecter la base de données. Pour plus d’informations sur les variables d’environnement, consultez l’article Intégrer Azure SQL Database avec Service Connector.
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;User ID=<client-Id>;Password=<client-secret>;Authentication=ActiveDirectoryServicePrincipal
Obtenez la chaîne de connexion Azure SQL Database à partir de la variable d’environnement ajoutée par le connecteur de services.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Obtenez la chaîne de connexion Azure SQL Database à partir de la variable d’environnement ajoutée par le connecteur de services.
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();
}
}
}
Pour une application Spring, si vous créez une connexion avec l’option --client-type springboot, Service Connector définit les propriétés spring.datasource.url au format valeur jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; sur Azure Spring Apps.
Obtenez les configurations de connexion Azure SQL Database à partir de la variable d’environnement ajoutée par le connecteur de services. Lorsque vous utilisez le code ci-dessous, supprimez les marques de commentaire de la partie de l’extrait de code pour le type d’authentification que vous souhaitez utiliser. Si vous utilisez Azure Container Apps comme service de calcul ou que la chaîne de connexion dans l’extrait de code ne fonctionne pas, reportez-vous à Migrer une application Python pour utiliser des connexions sans mot de passe avec Azure SQL Database pour vous connecter à Azure SQL Database à l’aide d’un jeton d’accès.
import os
import pyodbc
server = os.getenv('AZURE_SQL_SERVER')
port = os.getenv('AZURE_SQL_PORT')
database = os.getenv('AZURE_SQL_DATABASE')
authentication = os.getenv('AZURE_SQL_AUTHENTICATION')
# Uncomment the following lines corresponding to the authentication type you want to use.
# For system-assigned managed identity.
# connString = f'Driver={{ODBC Driver 18 for SQL Server}};Server=tcp:{server},{port};Database={database};Authentication={authentication};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
# For user-assigned managed identity.
# clientID = os.getenv('AZURE_SQL_USER')
# connString = f'Driver={{ODBC Driver 18 for SQL Server}};Server=tcp:{server},{port};Database={database};UID={clientID};Authentication={authentication};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
# For service principal.
# user = os.getenv('AZURE_SQL_USER')
# password = os.getenv('AZURE_SQL_PASSWORD')
# connString = f'Driver={{ODBC Driver 18 for SQL Server}};Server=tcp:{server},{port};Database={database};UID={user};PWD={password};Authentication={authentication};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
conn = pyodbc.connect(connString)
Installez des dépendances.
npm install mssql
Obtenez les configurations de connexion Azure SQL Database à partir des variables d’environnement ajoutées par le connecteur de services. Lorsque vous utilisez le code ci-dessous, supprimez les marques de commentaire de la partie de l’extrait de code pour le type d’authentification que vous souhaitez utiliser.
Pour les autres langages, utilisez les propriétés de connexion définis par le connecteur de services dans les variables d’environnement pour connecter la base de données. Pour plus d’informations sur les variables d’environnement, consultez l’article Intégrer Azure SQL Database avec Service Connector.