W tym artykule opisano obsługiwane metody uwierzytelniania, klientów i przykładowy kod, którego można użyć do łączenia aplikacji z usługą Azure SQL Database przy użyciu łącznika usługi. W tym artykule znajdziesz również domyślne nazwy zmiennych środowiskowych, wartości i konfigurację uzyskaną podczas tworzenia połączeń usług.
Obsługiwane usługi obliczeniowe
Łącznik usługi może służyć do łączenia następujących usług obliczeniowych z usługą Azure SQL Database:
- Azure App Service
- Azure Container Apps
- Azure Functions
- Azure Kubernetes Service (AKS)
- Azure Spring Apps
Obsługiwane typy uwierzytelniania i klienci
W poniższej tabeli przedstawiono kombinacje metod uwierzytelniania i klientów obsługiwanych do łączenia usługi obliczeniowej z usługą Azure SQL Database przy użyciu łącznika usługi Service Connector. Wartość "Tak" wskazuje, że kombinacja jest obsługiwana, a wartość "Nie" wskazuje, że nie jest obsługiwana.
| Typ klienta |
Zarządzana tożsamość przypisana przez system |
Tożsamość zarządzana przypisana przez użytkownika |
Tajny klucz/ciąg połączenia |
Jednostka usługi |
| .NET |
Tak |
Tak |
Tak |
Tak |
| Idź |
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 |
Uwaga
Tożsamość zarządzana przypisana przez system, tożsamość zarządzana przypisana przez użytkownika i uwierzytelnianie jednostki usługi są obsługiwane tylko w Azure CLI.
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 o wewnętrznych łącznikach usług.
Tożsamość zarządzana przypisana przez system
| Domyślna nazwa zmiennej środowiskowej |
opis |
Przykładowa wartość |
AZURE_SQL_CONNECTIONSTRING |
Parametry połączenia usługi Azure SQL Database |
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;Authentication=ActiveDirectoryManagedIdentity |
| Domyślna nazwa zmiennej środowiskowej |
opis |
Przykładowa wartość |
AZURE_SQL_CONNECTIONSTRING |
Parametry połączenia usługi Azure SQL Database |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-database>;authentication=ActiveDirectoryMSI; |
| Domyślna nazwa zmiennej środowiskowej |
opis |
Przykładowa wartość |
spring.datasource.url |
Adres URL źródła danych usługi Azure SQL Database |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; |
| Domyślna nazwa zmiennej środowiskowej |
opis |
Przykładowa wartość |
AZURE_SQL_SERVER |
Serwer usługi Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port usługi Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
Baza danych Azure SQL Database |
<sql-database> |
AZURE_SQL_AUTHENTICATION |
Uwierzytelnianie usługi Azure SQL |
ActiveDirectoryMsi |
| Domyślna nazwa zmiennej środowiskowej |
opis |
Przykładowa wartość |
AZURE_SQL_SERVER |
Serwer usługi Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port bazy danych Azure SQL |
1433 |
AZURE_SQL_DATABASE |
Baza danych Azure SQL Database |
<sql-database> |
AZURE_SQL_AUTHENTICATIONTYPE |
Typ uwierzytelniania usługi Azure SQL Database |
azure-active-directory-default |
| Domyślna nazwa zmiennej środowiskowej |
opis |
Przykładowa wartość |
AZURE_SQL_HOST |
Serwer usługi Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port usługi Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
Baza danych Azure SQL Database |
<sql-database> |
AZURE_SQL_AUTHENTICATION |
Typ uwierzytelniania usługi Azure SQL Database |
azure-active-directory-default |
Przykładowy kod
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.
Instalowanie zależności.
dotnet add package Microsoft.Data.SqlClient
Pobierz parametry połączenia usługi Azure SQL Database ze zmiennej środowiskowej dodanej przez łącznik usługi.
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 w usłudze Active Directory.
Dodaj następujące zależności w pliku pom.xml :
<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>
Pobierz parametry połączenia usługi Azure SQL Database ze zmiennej środowiskowej dodanej przez łącznik usługi.
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();
}
}
}
Aby uzyskać więcej informacji, zobacz Nawiązywanie połączenia z bazami danych platformy Azure z usługi App Service bez tajnych haseł przy użyciu zarządzanej tożsamości.
Instalowanie zależności.
python -m pip install pyodbc
Pobierz konfiguracje połączeń usługi Azure SQL Database ze zmiennej środowiskowej dodanej przez łącznik usługi. Korzystając z poniższego kodu, usuń komentarz z tej części kodu, która dotyczy typu uwierzytelniania, którego chcesz użyć. Jeśli używasz Azure Container Apps jako usługi obliczeniowej lub parametry połączenia we fragmencie kodu nie działają, zapoznaj się z artykułem Migrowanie aplikacji w Pythonie, aby używać połączeń bez hasła z bazą danych Azure SQL przy użyciu tokenu dostępu.
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)
- Instalowanie zależności.
npm install mssql
- Pobierz konfiguracje połączeń usługi Azure SQL Database ze zmiennych środowiskowych dodanych przez łącznik usługi. Korzystając z poniższego kodu, odkomentuj część fragmentu kodu dla typu uwierzytelniania, którego chcesz użyć.
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);
Aby uzyskać więcej informacji, zobacz Strona główna programowania klientów w programie Microsoft SQL Server.
Tożsamość zarządzana przypisana przez użytkownika
| Domyślna nazwa zmiennej środowiskowej |
opis |
Przykładowa wartość |
AZURE_SQL_CONNECTIONSTRING |
Parametry połączenia usługi Azure SQL Database |
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;User ID=<identity-client-ID>;Authentication=ActiveDirectoryManagedIdentity |
| Domyślna nazwa zmiennej środowiskowej |
opis |
Przykładowa wartość |
AZURE_SQL_CONNECTIONSTRING |
Parametry połączenia usługi Azure SQL Database |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-database>;msiClientId=<msiClientId>;authentication=ActiveDirectoryMSI; |
| Domyślna nazwa zmiennej środowiskowej |
opis |
Przykładowa wartość |
spring.datasource.url |
Adres URL źródła danych usługi Azure SQL Database |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;msiClientId=<msiClientId>;authentication=ActiveDirectoryMSI; |
| Domyślna nazwa zmiennej środowiskowej |
opis |
Przykładowa wartość |
AZURE_SQL_SERVER |
Serwer usługi Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port usługi Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
Baza danych usługi Azure SQL Database |
<sql-database> |
AZURE_SQL_USER |
Użytkownik usługi Azure SQL Database |
Object (principal) ID |
AZURE_SQL_AUTHENTICATION |
Uwierzytelnianie usługi Azure SQL |
ActiveDirectoryMsi |
| Domyślna nazwa zmiennej środowiskowej |
opis |
Przykładowa wartość |
AZURE_SQL_SERVER |
Serwer usługi Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port usługi Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
Baza danych usługi Azure SQL Database |
<sql-database> |
AZURE_SQL_AUTHENTICATIONTYPE |
Typ uwierzytelniania usługi Azure SQL Database |
azure-active-directory-default |
AZURE_SQL_CLIENTID |
Identyfikator klienta usługi Azure SQL Database |
<identity-client-ID> |
| Domyślna nazwa zmiennej środowiskowej |
opis |
Przykładowa wartość |
AZURE_SQL_HOST |
Serwer usługi Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port usługi Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
Baza danych Azure SQL Database |
<sql-database> |
AZURE_SQL_AUTHENTICATION |
Typ uwierzytelniania usługi Azure SQL Database |
azure-active-directory-default |
AZURE_SQL_USERNAME |
Identyfikator klienta usługi Azure SQL Database |
<your Client ID> |
Przykładowy kod
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.
Instalowanie zależności.
dotnet add package Microsoft.Data.SqlClient
Pobierz parametry połączenia usługi Azure SQL Database ze zmiennej środowiskowej dodanej przez łącznik usługi.
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 w Active Directory.
Dodaj następujące zależności w pliku pom.xml :
<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>
Pobierz parametry połączenia usługi Azure SQL Database ze zmiennej środowiskowej dodanej przez łącznik usługi.
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();
}
}
}
Aby uzyskać więcej informacji, zobacz nawiązywanie połączenia z bazami danych platformy Azure w usłudze App Service bez wpisów tajnych przy użyciu zarządzanej tożsamości.
Instalowanie zależności.
python -m pip install pyodbc
Pobierz konfiguracje połączeń usługi Azure SQL Database ze zmiennej środowiskowej dodanej przez łącznik usługi. Korzystając z poniższego kodu, odkomentuj odpowiedni fragment kodu dla typu uwierzytelniania, którego chcesz użyć. Jeśli używasz Azure Container Apps jako usługi obliczeniowej lub parametry połączenia we fragmencie kodu nie działają, skorzystaj z Migrowanie aplikacji Python do używania połączeń bez hasła z Azure SQL Database, aby połączyć się z Azure SQL Database przy użyciu tokenu dostępu.
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)
- Instalowanie zależności.
npm install mssql
- Pobierz konfiguracje połączeń usługi Azure SQL Database ze zmiennych środowiskowych dodanych przez łącznik usługi. Korzystając z poniższego kodu, odkomentuj część kodu odpowiednią dla typu uwierzytelniania, którego chcesz użyć.
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);
W przypadku innych języków użyj właściwości połączenia, które łącznik usługi ustawia na zmienne środowiskowe, aby połączyć bazę danych. Aby uzyskać szczegółowe informacje o zmiennych środowiskowych, zobacz Integracja Azure SQL Database z Service Connector.
Aby uzyskać więcej informacji, zobacz Strona główna programowania klientów w programie Microsoft SQL Server.
Łańcuch połączenia
Ostrzeżenie
Firma Microsoft zaleca korzystanie z najbezpieczniejszego dostępnego przepływu uwierzytelniania. Przepływ uwierzytelniania opisany w tej procedurze wymaga bardzo wysokiego poziomu zaufania w aplikacji i niesie ze sobą ryzyko, które nie występują w innych przepływach. Tego przepływu należy używać tylko wtedy, gdy inne bezpieczniejsze przepływy, takie jak tożsamości zarządzane, nie są opłacalne.
| Domyślna nazwa zmiennej środowiskowej |
opis |
Przykładowa wartość |
AZURE_SQL_CONNECTIONSTRING |
Parametry połączenia usługi Azure SQL Database |
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;Password=<sql-password> |
| Domyślna nazwa zmiennej środowiskowej |
opis |
Przykładowa wartość |
AZURE_SQL_CONNECTIONSTRING |
Parametry połączenia usługi Azure SQL Database |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-database>;user=<sql-username>;password=<sql-password>; |
| Domyślna nazwa zmiennej środowiskowej |
opis |
Przykładowa wartość |
spring.datasource.url |
Adres URL źródła danych usługi Azure SQL Database |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>; |
spring.datasource.username |
Nazwa użytkownika źródła danych usługi Azure SQL Database |
<sql-user> |
spring.datasource.password |
Hasło źródła danych usługi Azure SQL Database |
<sql-password> |
| Domyślna nazwa zmiennej środowiskowej |
opis |
Przykładowa wartość |
AZURE_SQL_SERVER |
Serwer usługi Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port usługi Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
Baza danych Azure SQL Database |
<sql-database> |
AZURE_SQL_USER |
Użytkownik usługi Azure SQL Database |
<sql-username> |
AZURE_SQL_PASSWORD |
Hasło usługi Azure SQL Database |
<sql-password> |
| Domyślna nazwa zmiennej środowiskowej |
opis |
Przykładowa wartość |
AZURE_SQL_HOST |
Host usługi Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port usługi Azure SQL Database |
1433 |
AZURE_SQL_NAME |
Nazwa usługi Azure SQL Database |
<sql-database> |
AZURE_SQL_USER |
Użytkownik usługi Azure SQL Database |
<sql-username> |
AZURE_SQL_PASSWORD |
Hasło usługi Azure SQL Database |
<sql-password> |
| Domyślna nazwa zmiennej środowiskowej |
opis |
Przykładowa wartość |
AZURE_SQL_CONNECTIONSTRING |
Parametry połączenia usługi Azure SQL Database |
server=<sql-server>.database.windows.net;port=1433;database=<sql-database>;user id=<sql-username>;password=<sql-password>; |
| Domyślna nazwa zmiennej środowiskowej |
opis |
Przykładowa wartość |
AZURE_SQL_SERVER |
Serwer usługi Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port usługi Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
Baza danych Azure SQL Database |
<sql-database> |
AZURE_SQL_USERNAME |
Nazwa użytkownika usługi Azure SQL Database |
<sql-username> |
AZURE_SQL_PASSWORD |
Hasło usługi Azure SQL Database |
<sql-password> |
| Domyślna nazwa zmiennej środowiskowej |
opis |
Przykładowa wartość |
AZURE_SQL_SERVERNAME |
Nazwa serwera usługi Azure SQL Database |
<sql-server>.database.windows.net,1433 |
AZURE_SQL_DATABASE |
Baza danych Azure SQL Database |
<sql-database> |
AZURE_SQL_UID |
Unikatowy identyfikator usługi Azure SQL Database (UID) |
<sql-username> |
AZURE_SQL_PASSWORD |
Hasło usługi Azure SQL Database |
<sql-password> |
| Domyślna nazwa zmiennej środowiskowej |
opis |
Przykładowa wartość |
AZURE_SQL_HOST |
Host usługi Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port usługi Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
baza danych Azure SQL Database |
<sql-database> |
AZURE_SQL_USERNAME |
Nazwa użytkownika usługi Azure SQL Database |
<sql-username> |
AZURE_SQL_PASSWORD |
Hasło usługi Azure SQL Database |
<sql-password> |
| Domyślna nazwa zmiennej środowiskowej |
opis |
Przykładowa wartość |
AZURE_SQL_HOST |
Host usługi Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port usługi Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
Baza danych Azure SQL Database |
<sql-database> |
AZURE_SQL_USERNAME |
Nazwa użytkownika usługi Azure SQL Database |
<sql-username> |
AZURE_SQL_PASSWORD |
Hasło usługi Azure SQL Database |
<sql-password> |
Przykładowy kod
Zapoznaj się z poniższymi krokami i kodem, aby nawiązać połączenie z usługą Azure SQL Database przy użyciu parametry połączenia.
Instalowanie zależności.
dotnet add package Microsoft.Data.SqlClient
Pobierz parametry połączenia usługi Azure SQL Database ze zmiennej środowiskowej dodanej przez łącznik usługi.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Dodaj następujące zależności w pliku pom.xml :
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>10.2.0.jre11</version>
</dependency>
Pobierz parametry połączenia usługi Azure SQL Database ze zmiennej środowiskowej dodanej przez łącznik usługi.
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();
}
}
}
- Dodaj zależność w pliku "pom.xml":
<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>
- Skonfiguruj aplikację Spring. Konfiguracje połączeń są dodawane do aplikacji Spring Apps by Service Connector.
Instalowanie zależności.
python -m pip install pyodbc
Pobierz konfiguracje połączeń usługi Azure SQL Database ze zmiennej środowiskowej dodanej przez łącznik usługi.
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)
Instalowanie zależności.
pip install django
pip install pyodbc
W pliku ustawień pobierz konfiguracje połączeń usługi Azure SQL Database ze zmiennej środowiskowej dodanej przez łącznik usługi.
# 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': database,
'USER': user,
'PASSWORD': password,
'HOST': server,
'PORT': port,
'OPTIONS': {
'driver': 'ODBC Driver 13 for SQL Server',
},
},
}
Zainstaluj zależność.
go install github.com/microsoft/go-mssqldb@latest
Pobierz parametry połączenia usługi Azure SQL Database ze zmiennej środowiskowej dodanej przez łącznik usługi.
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")
- Instalowanie zależności.
npm install mssql
- Pobierz konfiguracje połączeń usługi Azure SQL Database ze zmiennych środowiskowych dodanych przez łącznik usługi.
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);
Pobierz sterowniki firmy Microsoft dla języka PHP dla programu SQL Server. Aby uzyskać więcej informacji, zobacz Wprowadzenie do sterowników firmy Microsoft dla języka PHP dla programu SQL Server.
Pobierz konfiguracje połączeń usługi Azure SQL Database ze zmiennych środowiskowych dodanych przez łącznik usługi.
<?php
$server = 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);
?>
Pobierz sterownik języka Ruby dla programu SQL Server. Aby uzyskać więcej informacji, zobacz Konfigurowanie środowiska projektowego na potrzeby programowania w języku Ruby.
Pobierz konfiguracje połączeń usługi Azure SQL Database ze zmiennych środowiskowych dodanych przez łącznik usługi.
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
Aby uzyskać więcej informacji, zobacz Strona główna programowania klientów w programie Microsoft SQL Server.
Jednostka usługi
| Domyślna nazwa zmiennej środowiskowej |
opis |
Przykładowa wartość |
AZURE_SQL_CLIENTID |
Identyfikator klienta |
<client-ID> |
AZURE_SQL_CLIENTSECRET |
Tajny klucz klienta |
<client-secret> |
AZURE_SQL_TENANTID |
Twój identyfikator dzierżawy |
<tenant-ID> |
AZURE_SQL_CONNECTIONSTRING |
Parametry połączenia usługi Azure SQL Database |
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;User ID=<client-Id>;Password=<client-secret>;Authentication=ActiveDirectoryServicePrincipal |
| Domyślna nazwa zmiennej środowiskowej |
opis |
Przykładowa wartość |
AZURE_SQL_CONNECTIONSTRING |
Parametry połączenia usługi Azure SQL Database |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-database>;user=<client-Id>;password=<client-secret>;authentication=ActiveDirectoryServicePrincipal; |
| Domyślna nazwa zmiennej środowiskowej |
opis |
Przykładowa wartość |
spring.datasource.url |
Adres URL źródła danych usługi Azure SQL Database |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryServicePrincipal; |
spring.datasource.username |
Nazwa użytkownika źródła danych usługi Azure SQL Database |
<client-Id> |
spring.datasource.password |
Hasło źródła danych usługi Azure SQL Database |
<client-Secret> |
| Domyślna nazwa zmiennej środowiskowej |
opis |
Przykładowa wartość |
AZURE_SQL_SERVER |
Serwer usługi Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port usługi Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
baza danych Azure SQL Database |
<sql-database> |
AZURE_SQL_USER |
Użytkownik usługi Azure SQL Database |
your Client Id |
AZURE_SQL_AUTHENTICATION |
Uwierzytelnianie usługi Azure SQL |
ActiveDirectoryServerPrincipal |
AZURE_SQL_PASSWORD |
Hasło usługi Azure SQL Database |
your Client Secret |
| Domyślna nazwa zmiennej środowiskowej |
opis |
Przykładowa wartość |
AZURE_SQL_SERVER |
Serwer usługi Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port usługi Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
Baza danych Azure SQL |
<sql-database> |
AZURE_SQL_AUTHENTICATIONTYPE |
Typ uwierzytelniania usługi Azure SQL Database |
azure-active-directory-default |
AZURE_SQL_CLIENTID |
Identyfikator klienta usługi Azure SQL Database |
<your Client ID> |
AZURE_SQL_CLIENTSECRET |
Tajny klucz klienta usługi Azure SQL Database |
<your Client Secret > |
AZURE_SQL_TENANTID |
Identyfikator dzierżawy usługi Azure SQL Database |
<your Tenant ID> |
| Domyślna nazwa zmiennej środowiskowej |
opis |
Przykładowa wartość |
AZURE_SQL_HOST |
Serwer usługi Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port usługi Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
Baza danych Azure SQL Database |
<sql-database> |
AZURE_SQL_AUTHENTICATION |
Typ uwierzytelniania usługi Azure SQL Database |
azure-active-directory-default |
AZURE_SQL_USERNAME |
Identyfikator klienta usługi Azure SQL Database |
<your Client ID> |
AZURE_SQL_PASSWORD |
Tajemnica klienta usługi Azure SQL Database |
<your Client Secret > |
Przykładowy kod
Zapoznaj się z poniższymi krokami i kodem, aby nawiązać połączenie z bazą danych Azure SQL Database przy użyciu jednostki usługi.
Instalowanie zależności.
dotnet add package Microsoft.Data.SqlClient
Pobierz parametry połączenia usługi Azure SQL Database ze zmiennej środowiskowej dodanej przez łącznik usługi.
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 za pomocą tożsamości zarządzanej w usłudze Active Directory.
Dodaj następujące zależności w pliku pom.xml :
<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>
Pobierz parametry połączenia usługi Azure SQL Database ze zmiennej środowiskowej dodanej przez łącznik usługi.
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();
}
}
}
Aby uzyskać więcej informacji, zobacz Połączenie z bazami danych Azure z usługi App Service bez tajemnic przy użyciu zarządzanej tożsamości.
Instalowanie zależności.
python -m pip install pyodbc
Pobierz konfiguracje połączeń usługi Azure SQL Database ze zmiennej środowiskowej dodanej przez łącznik usługi. Korzystając z poniższego kodu, odkomentuj część fragmentu odpowiadającą typowi uwierzytelniania, którego chcesz użyć. Jeśli używasz usługi Azure Container Apps jako usługi obliczeniowej lub parametry połączenia we fragmencie kodu nie działają, zapoznaj się z poradnikiem Migrowanie aplikacji w języku Python w celu używania połączeń bez hasła z usługą Azure SQL Database, aby nawiązać połączenie z usługą Azure SQL Database przy użyciu tokenu dostępu.
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)
- Instalowanie zależności.
npm install mssql
- Pobierz konfiguracje połączeń usługi Azure SQL Database ze zmiennych środowiskowych dodanych przez łącznik usługi. Korzystając z poniższego kodu, odkomentuj część fragmentu kodu dla typu uwierzytelniania, którego chcesz użyć.
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);
W przypadku innych języków użyj właściwości połączenia, które łącznik usługi ustawia na zmienne środowiskowe, aby połączyć bazę danych. Aby uzyskać szczegółowe informacje o zmiennych środowiskowych, zobacz Integracja Azure SQL Database z Service Connector.
Aby uzyskać więcej informacji, zobacz Strona główna programowania klientów w programie Microsoft SQL Server.
Następne kroki
Postępuj zgodnie z samouczkiem wymienionym poniżej, aby dowiedzieć się więcej o Service Connector.