Integrace služby Azure SQL Database s konektorem služby
Článek
Tato stránka ukazuje podporované metody ověřování a klienty a ukazuje ukázkový kód, který můžete použít k připojení výpočetních služeb ke službě Azure SQL Database pomocí konektoru služby. Stále se můžete připojit ke službě Azure SQL Database pomocí jiných metod. Tato stránka také zobrazuje výchozí názvy proměnných prostředí a hodnoty, které získáte při vytváření připojení služby.
Podporované výpočetní služby
Konektor služby se dá použít k připojení následujících výpočetních služeb ke službě Azure SQL Database:
Azure App Service
Azure Container Apps
Azure Functions
Azure Kubernetes Service (AKS)
Azure Spring Apps
Podporované typy ověřování a klienti
Následující tabulka ukazuje, které kombinace metod ověřování a klientů se podporují pro připojení výpočetní služby ke službě Azure SQL Database pomocí konektoru služby. "Ano" označuje, že kombinace je podporována, zatímco "Ne" označuje, že není podporována.
Typ klienta
Spravovaná identita přiřazená systémem
Spravovaná identita přiřazená uživatelem
Tajný kód/připojovací řetězec
Instanční objekt
.NET
Ano
Ano
Ano
Yes
Go
No
No
Ano
No
Java
Ano
Ano
Ano
Yes
Java – Spring Boot
Ano
Ano
Ano
Yes
Node.js
Ano
Ano
Ano
Yes
PHP
No
No
Ano
No
Python
Ano
Ano
Ano
Yes
Python – Django
No
No
Ano
No
Ruby
No
No
Ano
No
Nic
Ano
Ano
Ano
Yes
Tato tabulka udává, že metoda Secret/připojovací řetězec je podporovaná pro všechny typy klientů. Spravované identity přiřazené systémem, spravovaná identita přiřazená uživatelem a instanční metody jsou podporované pro klienty .NET, Java, Java – Spring Boot, Node.js, Python a None. Tyto metody nejsou podporovány pro typy klientů Go, PHP, Django a Ruby.
Poznámka:
Spravovaná identita přiřazená systémem, spravovaná identita přiřazená uživatelem a instanční objekt se podporují jenom v Azure CLI.
Výchozí názvy proměnných prostředí nebo vlastnosti aplikace a ukázkový kód
Pomocí níže uvedených podrobností o připojení připojte výpočetní služby ke službě Azure SQL Database. V každém příkladu níže nahraďte zástupné texty <sql-server>, <sql-database>, <sql-username>a <sql-password> vlastním názvem serveru, názvem databáze, ID uživatele a heslem. Další informace o konvencích vytváření názvů najdete v interním článku o konektoru služby.
Získejte připojovací řetězec Azure SQL Database z proměnné prostředí přidané konektorem služby.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Další informace najdete v tématu Použití ověřování spravované identity služby Active Directory.
Do souboru pom.xml přidejte následující závislosti:
Získejte připojovací řetězec Azure SQL Database z proměnné prostředí přidané konektorem služby.
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();
}
}
}
Pokud pro aplikaci Spring vytvoříte připojení s možností --client-type springboot, Service Connector nastaví vlastnosti spring.datasource.url s formátem jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; hodnoty na Azure Spring Apps.
Získejte konfigurace připojení ke službě Azure SQL Database z proměnné prostředí přidané konektorem služby. Při použití následujícího kódu odkomentujte část fragmentu kódu pro typ ověřování, který chcete použít. Pokud používáte Azure Container Apps jako výpočetní službu nebo připojovací řetězec v fragmentu kódu nefunguje, přečtěte si článek o migraci aplikace Pythonu, která k připojení ke službě Azure SQL Database používá bez hesla připojení ke službě Azure SQL Database pomocí přístupového tokenu.
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)
Nainstalujte závislosti.
npm install mssql
Získejte konfigurace připojení ke službě Azure SQL Database z proměnných prostředí přidaných konektorem služby. Při použití následujícího kódu odkomentujte část fragmentu kódu pro typ ověřování, který chcete použít.
V jiných jazycích použijte vlastnosti připojení, které Service Connector nastaví na proměnné prostředí pro připojení databáze. Podrobnosti o proměnné prostředí najdete v tématu Integrace služby Azure SQL Database s konektorem služby.
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;User ID=<identity-client-ID>;Authentication=ActiveDirectoryManagedIdentity
Získejte připojovací řetězec Azure SQL Database z proměnné prostředí přidané konektorem služby.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Další informace najdete v tématu Použití ověřování spravované identity služby Active Directory.
Do souboru pom.xml přidejte následující závislosti:
Získejte připojovací řetězec Azure SQL Database z proměnné prostředí přidané konektorem služby.
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();
}
}
}
Pokud pro aplikaci Spring vytvoříte připojení s možností --client-type springboot, Service Connector nastaví vlastnosti spring.datasource.url s formátem jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; hodnoty na Azure Spring Apps.
Získejte konfigurace připojení ke službě Azure SQL Database z proměnné prostředí přidané konektorem služby. Při použití následujícího kódu odkomentujte část fragmentu kódu pro typ ověřování, který chcete použít. Pokud používáte Azure Container Apps jako výpočetní službu nebo připojovací řetězec v fragmentu kódu nefunguje, přečtěte si článek o migraci aplikace Pythonu, která k připojení ke službě Azure SQL Database používá bez hesla připojení ke službě Azure SQL Database pomocí přístupového tokenu.
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)
Nainstalujte závislosti.
npm install mssql
Získejte konfigurace připojení ke službě Azure SQL Database z proměnných prostředí přidaných konektorem služby. Při použití následujícího kódu odkomentujte část fragmentu kódu pro typ ověřování, který chcete použít.
V jiných jazycích použijte vlastnosti připojení, které Service Connector nastaví na proměnné prostředí pro připojení databáze. Podrobnosti o proměnné prostředí najdete v tématu Integrace služby Azure SQL Database s konektorem služby.
Microsoft doporučuje používat nejbezpečnější dostupný tok ověřování. Ověřovací tok popsaný v tomto postupu vyžaduje velmi vysoký stupeň důvěryhodnosti v aplikaci a nese rizika, která nejsou přítomna v jiných tocích. Tento tok byste měli použít jenom v případě, že jiné bezpečnější toky, jako jsou spravované identity, nejsou přijatelné.
Získejte připojovací řetězec Azure SQL Database z proměnné prostředí přidané konektorem služby.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Do souboru pom.xml přidejte následující závislosti:
V jiných jazycích použijte vlastnosti připojení, které Service Connector nastaví na proměnné prostředí pro připojení databáze. Podrobnosti o proměnné prostředí najdete v tématu Integrace služby Azure SQL Database s konektorem služby.
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;User ID=<client-Id>;Password=<client-secret>;Authentication=ActiveDirectoryServicePrincipal
Získejte připojovací řetězec Azure SQL Database z proměnné prostředí přidané konektorem služby.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Další informace najdete v tématu Použití ověřování spravované identity služby Active Directory.
Do souboru pom.xml přidejte následující závislosti:
Získejte připojovací řetězec Azure SQL Database z proměnné prostředí přidané konektorem služby.
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();
}
}
}
Pokud pro aplikaci Spring vytvoříte připojení s možností --client-type springboot, Service Connector nastaví vlastnosti spring.datasource.url s formátem jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; hodnoty na Azure Spring Apps.
Získejte konfigurace připojení ke službě Azure SQL Database z proměnné prostředí přidané konektorem služby. Při použití následujícího kódu odkomentujte část fragmentu kódu pro typ ověřování, který chcete použít. Pokud používáte Azure Container Apps jako výpočetní službu nebo připojovací řetězec v fragmentu kódu nefunguje, přečtěte si článek o migraci aplikace Pythonu, která k připojení ke službě Azure SQL Database používá bez hesla připojení ke službě Azure SQL Database pomocí přístupového tokenu.
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)
Nainstalujte závislosti.
npm install mssql
Získejte konfigurace připojení ke službě Azure SQL Database z proměnných prostředí přidaných konektorem služby. Při použití následujícího kódu odkomentujte část fragmentu kódu pro typ ověřování, který chcete použít.
V jiných jazycích použijte vlastnosti připojení, které Service Connector nastaví na proměnné prostředí pro připojení databáze. Podrobnosti o proměnné prostředí najdete v tématu Integrace služby Azure SQL Database s konektorem služby.