Integrowanie usługi Azure SQL Database z usługą Połączenie or
Artykuł
Na tej stronie przedstawiono obsługiwane metody uwierzytelniania i klientów oraz pokazano przykładowy kod, którego można użyć do łączenia usług obliczeniowych z usługą Azure SQL Database przy użyciu usługi Service Połączenie or. Nadal możesz nawiązać połączenie z usługą Azure SQL Database przy użyciu innych metod. Ta strona zawiera również domyślne nazwy zmiennych środowiskowych i wartości uzyskiwane podczas tworzenia połączenia z usługą.
Obsługiwane usługi obliczeniowe
Za pomocą Połączenie usługi można połączyć następujące usługi obliczeniowe z usługą Azure SQL Database:
Azure App Service
Azure Functions
Azure Container Apps
Azure Spring Apps
Obsługiwane typy uwierzytelniania i klienci
W poniższej tabeli pokazano, które kombinacje metod uwierzytelniania i klientów są obsługiwane do łączenia usługi obliczeniowej z usługą Azure SQL Database przy użyciu usługi Service Połączenie or. Wartość "Tak" wskazuje, że kombinacja jest obsługiwana, a wartość "Nie" wskazuje, że nie jest obsługiwana.
Typ klienta
Tożsamość zarządzana przypisana przez system
Tożsamość zarządzana przypisana przez użytkownika
Wpis tajny/parametry połączenia
Jednostka usługi
.NET
Tak
Tak
Tak
Tak
Go
Nie
Nie.
Tak
Nie.
Java
Tak
Tak
Tak
Tak
Java — Spring Boot
Tak
Tak
Tak
Tak
Node.js
Tak
Tak
Tak
Tak
PHP
Nie
Nie.
Tak
Nie.
Python
Tak
Tak
Tak
Tak
Python — Django
Nie
Nie.
Tak
Nie.
Ruby
Nie
Nie.
Tak
Nie.
Brak
Tak
Tak
Tak
Tak
Ta tabela wskazuje, że metoda Secret/parametry połączenia jest obsługiwana dla wszystkich typów klientów. Metody tożsamości zarządzanej przypisanej przez system, tożsamości zarządzanej przypisanej przez użytkownika i jednostki usługi są obsługiwane dla typów klientów .NET, Java, Java — Spring Boot, Node.js, Python i None. Te metody nie są obsługiwane w przypadku typów klientów języka Go, PHP, Django i Ruby.
Uwaga
Tożsamość zarządzana przypisana przez system, tożsamość zarządzana przypisana przez użytkownika i jednostka usługi są obsługiwane tylko w interfejsie wiersza polecenia platformy Azure.
Domyślne nazwy zmiennych środowiskowych lub właściwości aplikacji i przykładowy kod
Użyj poniższych szczegółów połączenia, aby połączyć usługi obliczeniowe z usługą Azure SQL Database. Dla każdego z poniższych przykładów zastąp tekst zastępczy <sql-server>, <sql-database>, <sql-username>i <sql-password> własną nazwą serwera, nazwą bazy danych, identyfikatorem użytkownika i hasłem. Aby uzyskać więcej informacji na temat konwencji nazewnictwa, zapoznaj się z artykułem Service Połączenie or internals (Usługi Połączenie or internals).
Zapoznaj się z poniższymi krokami i kodem, aby nawiązać połączenie z usługą Azure SQL Database przy użyciu tożsamości zarządzanej przypisanej przez system.
Pobierz parametry połączenia usługi Azure SQL Database ze zmiennej środowiskowej dodanej przez usługę Service Połączenie or.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Aby uzyskać więcej informacji, zobacz Używanie uwierzytelniania tożsamości zarządzanej usługi Active Directory.
Pobierz parametry połączenia usługi Azure SQL Database ze zmiennej środowiskowej dodanej przez usługę Service Połączenie or.
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();
}
}
}
W przypadku aplikacji Spring, jeśli utworzysz połączenie z opcją --client-type springboot, usługa Połączenie or ustawia właściwości spring.datasource.url w formacie jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; wartości na azure Spring Apps.
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 according to the authentication type.
# 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)
Instalowanie zależności.
npm install mssql
Pobierz konfiguracje połączeń usługi Azure SQL Database ze zmiennych środowiskowych dodanych przez usługę Połączenie or. Korzystając z poniższego kodu, usuń komentarz z części fragmentu kodu dla typu uwierzytelniania, którego chcesz użyć.
W przypadku innych języków użyj właściwości połączenia, które usługa Połączenie or ustawia na zmienne środowiskowe, aby połączyć bazę danych. Aby uzyskać szczegółowe informacje o zmiennej środowiskowej, zobacz Integrowanie usługi Azure SQL Database z usługą Połączenie or.
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;User ID=<identity-client-ID>;Authentication=ActiveDirectoryManagedIdentity
Zapoznaj się z poniższymi krokami i kodem, aby nawiązać połączenie z usługą Azure SQL Database przy użyciu tożsamości zarządzanej przypisanej przez użytkownika.
Pobierz parametry połączenia usługi Azure SQL Database ze zmiennej środowiskowej dodanej przez usługę Service Połączenie or.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Aby uzyskać więcej informacji, zobacz Używanie uwierzytelniania tożsamości zarządzanej usługi Active Directory.
Pobierz parametry połączenia usługi Azure SQL Database ze zmiennej środowiskowej dodanej przez usługę Service Połączenie or.
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();
}
}
}
W przypadku aplikacji Spring, jeśli utworzysz połączenie z opcją --client-type springboot, usługa Połączenie or ustawia właściwości spring.datasource.url w formacie jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; wartości na azure Spring Apps.
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 according to the authentication type.
# 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)
Instalowanie zależności.
npm install mssql
Pobierz konfiguracje połączeń usługi Azure SQL Database ze zmiennych środowiskowych dodanych przez usługę Połączenie or. Korzystając z poniższego kodu, usuń komentarz z części fragmentu kodu dla typu uwierzytelniania, którego chcesz użyć.
W przypadku innych języków użyj właściwości połączenia, które usługa Połączenie or ustawia na zmienne środowiskowe, aby połączyć bazę danych. Aby uzyskać szczegółowe informacje o zmiennej środowiskowej, zobacz Integrowanie usługi Azure SQL Database z usługą Połączenie or.
Pobierz parametry połączenia usługi Azure SQL Database ze zmiennej środowiskowej dodanej przez usługę Service Połączenie or.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
W przypadku innych języków użyj właściwości połączenia, które usługa Połączenie or ustawia na zmienne środowiskowe, aby połączyć bazę danych. Aby uzyskać szczegółowe informacje o zmiennej środowiskowej, zobacz Integrowanie usługi Azure SQL Database z usługą Połączenie or.
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;User ID=<client-Id>;Password=<client-secret>;Authentication=ActiveDirectoryServicePrincipal
Pobierz parametry połączenia usługi Azure SQL Database ze zmiennej środowiskowej dodanej przez usługę Service Połączenie or.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Aby uzyskać więcej informacji, zobacz Używanie uwierzytelniania tożsamości zarządzanej usługi Active Directory.
Pobierz parametry połączenia usługi Azure SQL Database ze zmiennej środowiskowej dodanej przez usługę Service Połączenie or.
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();
}
}
}
W przypadku aplikacji Spring, jeśli utworzysz połączenie z opcją --client-type springboot, usługa Połączenie or ustawia właściwości spring.datasource.url w formacie jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; wartości na azure Spring Apps.
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 according to the authentication type.
# 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)
Instalowanie zależności.
npm install mssql
Pobierz konfiguracje połączeń usługi Azure SQL Database ze zmiennych środowiskowych dodanych przez usługę Połączenie or. Korzystając z poniższego kodu, usuń komentarz z części fragmentu kodu dla typu uwierzytelniania, którego chcesz użyć.
W przypadku innych języków użyj właściwości połączenia, które usługa Połączenie or ustawia na zmienne środowiskowe, aby połączyć bazę danych. Aby uzyskać szczegółowe informacje o zmiennej środowiskowej, zobacz Integrowanie usługi Azure SQL Database z usługą Połączenie or.