Auf dieser Seite werden unterstützte Authentifizierungsmethoden und Clients sowie Beispielcode gezeigt, den Sie verwenden können, um Computedienste mit Azure SQL-Datenbank mithilfe des Dienstconnectors zu verbinden. Möglicherweise können Sie mit anderen Methoden eine Verbindung mit der Azure SQL-Datenbank herstellen. Auf dieser Seite werden auch die Namen und Werte der Standardumgebungsvariablen angezeigt, die Sie erhalten, wenn Sie die Dienstverbindung erstellen.
Unterstützte Computedienste
Der Dienstconnector kann verwendet werden, um die folgenden Computedienste mit Azure SQL-Datenbank zu verbinden:
- Azure App Service
- Azure Container Apps
- Azure-Funktionen
- Azure Kubernetes Service (AKS)
- Azure Spring Apps
Unterstützte Authentifizierungstypen und Clients
Die folgende Tabelle zeigt, welche Kombinationen von Authentifizierungsmethoden und Clients für die Verbindung Ihres Computediensts mit Azure SQL-Datenbank mithilfe des Dienstconnectors unterstützt werden. Ein „Ja“ gibt an, dass die Kombination unterstützt wird, während ein „Nein“ angibt, dass sie nicht unterstützt wird.
Clienttyp |
Systemseitig zugewiesene verwaltete Identität |
Benutzerseitig zugewiesene verwaltete Identität |
Geheimnis/Verbindungszeichenfolge |
Dienstprinzipal |
.NET |
Ja |
Ja |
Ja |
Ja |
Go |
No |
Nein |
Ja |
No |
Java |
Ja |
Ja |
Ja |
Ja |
Java - Spring Boot |
Ja |
Ja |
Ja |
Ja |
Node.js |
Ja |
Ja |
Ja |
Ja |
PHP |
No |
Nein |
Ja |
Nein |
Python |
Ja |
Ja |
Ja |
Ja |
Python – Django |
No |
Nein |
Ja |
No |
Ruby |
No |
Nein |
Ja |
Nein |
Keine |
Ja |
Ja |
Ja |
Ja |
Diese Tabelle gibt an, dass das Geheimnis/die Verbindungszeichenfolgenmethode für alle Clienttypen unterstützt wird. Die vom System zugewiesenen verwalteten Identitäten, die vom Benutzer zugewiesenen verwalteten Identitäten und die Dienstprinzipalmethoden werden für die Client-Typen .NET, Java, Java – Spring Boot, Node.js, Python und None unterstützt. Diese Methoden werden für Go-, PHP-, Django- und Ruby-Clienttypen nicht unterstützt.
Hinweis
Vom System zugewiesene verwaltete Identität, vom Benutzer zugewiesene verwaltete Identität und Dienstprinzipal werden nur in Azure CLI unterstützt.
Namen von Standard-Umgebungsvariablen oder Anwendungseigenschaften und Beispielcode
Verwenden Sie die nachstehenden Verbindungsdetails, um Computedienste mit Azure SQL-Datenbank zu verbinden. Ersetzen Sie in jedem unten genannten Beispiel die Platzhaltertexte <sql-server>
, <sql-database>
, <sql-username>
und <sql-password>
durch Ihre Werte für eigenen Servername, Datenbankname, Benutzer-ID und Kennwort. Weitere Informationen zu Benennungskonventionen finden Sie im Artikel Besonderheiten des Dienstconnectors.
Systemseitig zugewiesene verwaltete Identität
Standardname der Umgebungsvariablen |
Beschreibung |
Beispielwert |
AZURE_SQL_CONNECTIONSTRING |
Verbindungszeichenfolge für Azure SQL-Datenbank |
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;Authentication=ActiveDirectoryManagedIdentity |
Standardname der Umgebungsvariablen |
Beschreibung |
Beispielwert |
AZURE_SQL_CONNECTIONSTRING |
Verbindungszeichenfolge für Azure SQL-Datenbank |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-database>;authentication=ActiveDirectoryMSI; |
Standardname der Umgebungsvariablen |
Beschreibung |
Beispielwert |
spring.datasource.url |
Datenquellen-URL für Azure SQL-Datenbank |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; |
Standardname der Umgebungsvariablen |
Beschreibung |
Beispielwert |
AZURE_SQL_SERVER |
Azure SQL-Datenbank-Server |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port für Azure SQL-Datenbank |
1433 |
AZURE_SQL_DATABASE |
Datenbank für Azure SQL-Datenbank |
<sql-database> |
AZURE_SQL_AUTHENTICATION |
Azure SQL-Authentifizierung |
ActiveDirectoryMsi |
Standardname der Umgebungsvariablen |
Beschreibung |
Beispielwert |
AZURE_SQL_SERVER |
Azure SQL-Datenbank-Server |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port für Azure SQL-Datenbank |
1433 |
AZURE_SQL_DATABASE |
Datenbank für Azure SQL-Datenbank |
<sql-database> |
AZURE_SQL_AUTHENTICATIONTYPE |
Typ der Azure SQL-Datenbank-Authentifizierung |
azure-active-directory-default |
Standardname der Umgebungsvariablen |
Beschreibung |
Beispielwert |
AZURE_SQL_HOST |
Azure SQL-Datenbank-Server |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port für Azure SQL-Datenbank |
1433 |
AZURE_SQL_DATABASE |
Datenbank für Azure SQL-Datenbank |
<sql-database> |
AZURE_SQL_AUTHENTICATION |
Typ der Azure SQL-Datenbank-Authentifizierung |
azure-active-directory-default |
Beispielcode
Lesen Sie die Schritte und den folgenden Code, um eine Verbindung mit der Azure SQL-Datenbank mithilfe einer vom System zugewiesenen verwalteten Identität herzustellen.
Installieren Sie Abhängigkeiten.
dotnet add package Microsoft.Data.SqlClient
Rufen Sie die Azure SQL-Datenbank-Verbindungszeichenfolge aus der Umgebungsvariable ab, die vom Dienstconnector hinzugefügt wird.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Weitere Informationen finden Sie unter Verwenden der Active Directory mit verwalteter Identität-Authentifizierung.
Fügen Sie der Datei pom.xml die folgenden Abhängigkeiten hinzu:
<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>
Rufen Sie die Azure SQL-Datenbank-Verbindungszeichenfolge aus der Umgebungsvariable ab, die vom Dienstconnector hinzugefügt wird.
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();
}
}
}
Weitere Informationen finden Sie unter Herstellen einer Verbindung mit Azure-Datenbanken über App Service ohne Geheimnisse mithilfe einer verwalteten Identität.
Wenn Sie für eine Spring-Anwendung eine Verbindung mit der Option --client-type springboot
erstellen, setzt Service Connector die Eigenschaften spring.datasource.url
mit dem Werteformat jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI;
auf Azure Spring Apps.
Aktualisieren Sie Ihre Anwendung nach dem Tutorial Migrieren einer Java-Anwendung zur Verwendung von kennwortlosen Verbindungen mit Azure SQL-Datenbank. Denken Sie daran, die Konfigurationseigenschaft spring.datasource.password
zu entfernen, wenn sie zuvor festgelegt wurde, und fügen Sie die richtigen Abhängigkeiten hinzu.
Installieren Sie Abhängigkeiten.
python -m pip install pyodbc
Rufen Sie die Azure SQL-Datenbank-Verbindungskonfigurationen aus der Umgebungsvariable ab, die von Service Connector hinzugefügt wurde. Wenn Sie den folgenden Code verwenden, heben Sie die Auskommentierung des Teils des Codeschnipsels für den Authentifizierungstyp auf, den Sie verwenden möchten. Wenn Sie Azure Container Apps als Computedienst verwenden oder die Verbindungszeichenfolge im Codeausschnitt nicht funktioniert, lesen Sie Migrieren einer Python-Anwendung, um kennwortlose Verbindungen mit Azure SQL-Datenbank zum Herstellen einer Verbindung mit Azure SQL-Datenbank mithilfe eines Zugriffstokens zu verwenden.
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)
- Installieren Sie Abhängigkeiten.
npm install mssql
- Rufen Sie die Azure SQL-Datenbank-Verbindungskonfigurationen aus den vom Dienstconnector hinzugefügten Umgebungsvariablen ab. Wenn Sie den folgenden Code verwenden, heben Sie die Auskommentierung des Teils des Codeschnipsels für den Authentifizierungstyp auf, den Sie verwenden möchten.
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);
Für andere Sprachen können Sie die Verbindungseigenschaften verwenden, die der Dienstconnector auf die Umgebungsvariablen festgelegt hat, um eine Verbindung mit der Datenbank herzustellen. Weitere Informationen zu Umgebungsvariablen finden Sie unter Integrieren von Azure SQL-Datenbank mit dem Dienstconnector.
Weitere Informationen finden Sie unter Startseite für die Clientprogrammierung in Microsoft SQL Server.
Benutzerseitig zugewiesene verwaltete Identität
Standardname der Umgebungsvariablen |
Beschreibung |
Beispielwert |
AZURE_SQL_CONNECTIONSTRING |
Verbindungszeichenfolge für Azure SQL-Datenbank |
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;User ID=<identity-client-ID>;Authentication=ActiveDirectoryManagedIdentity |
Standardname der Umgebungsvariablen |
Beschreibung |
Beispielwert |
AZURE_SQL_CONNECTIONSTRING |
Verbindungszeichenfolge für Azure SQL-Datenbank |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-database>;msiClientId=<msiClientId>;authentication=ActiveDirectoryMSI; |
Standardname der Umgebungsvariablen |
Beschreibung |
Beispielwert |
spring.datasource.url |
Datenquellen-URL für Azure SQL-Datenbank |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;msiClientId=<msiClientId>;authentication=ActiveDirectoryMSI; |
Standardname der Umgebungsvariablen |
Beschreibung |
Beispielwert |
AZURE_SQL_SERVER |
Azure SQL-Datenbank-Server |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port für Azure SQL-Datenbank |
1433 |
AZURE_SQL_DATABASE |
Datenbank für Azure SQL-Datenbank |
<sql-database> |
AZURE_SQL_USER |
Benutzer in Azure SQL-Datenbank |
Object (principal) ID |
AZURE_SQL_AUTHENTICATION |
Azure SQL-Authentifizierung |
ActiveDirectoryMsi |
Standardname der Umgebungsvariablen |
Beschreibung |
Beispielwert |
AZURE_SQL_SERVER |
Azure SQL-Datenbank-Server |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port für Azure SQL-Datenbank |
1433 |
AZURE_SQL_DATABASE |
Datenbank für Azure SQL-Datenbank |
<sql-database> |
AZURE_SQL_AUTHENTICATIONTYPE |
Typ der Azure SQL-Datenbank-Authentifizierung |
azure-active-directory-default |
AZURE_SQL_CLIENTID |
Client-ID der Azure SQL-Datenbank |
<identity-client-ID> |
Standardname der Umgebungsvariablen |
Beschreibung |
Beispielwert |
AZURE_SQL_HOST |
Azure SQL-Datenbank-Server |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port für Azure SQL-Datenbank |
1433 |
AZURE_SQL_DATABASE |
Datenbank für Azure SQL-Datenbank |
<sql-database> |
AZURE_SQL_AUTHENTICATION |
Typ der Azure SQL-Datenbank-Authentifizierung |
azure-active-directory-default |
AZURE_SQL_USERNAME |
Client-ID der Azure SQL-Datenbank |
<your Client ID> |
Beispielcode
Lesen Sie die Schritte und den folgenden Code, um eine Verbindung mit der Azure SQL-Datenbank mithilfe einer vom Benutzer zugewiesenen verwalteten Identität herzustellen.
Installieren Sie Abhängigkeiten.
dotnet add package Microsoft.Data.SqlClient
Rufen Sie die Azure SQL-Datenbank-Verbindungszeichenfolge aus der Umgebungsvariable ab, die vom Dienstconnector hinzugefügt wird.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Weitere Informationen finden Sie unter Verwenden der Active Directory mit verwalteter Identität-Authentifizierung.
Fügen Sie der Datei pom.xml die folgenden Abhängigkeiten hinzu:
<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>
Rufen Sie die Azure SQL-Datenbank-Verbindungszeichenfolge aus der Umgebungsvariable ab, die vom Dienstconnector hinzugefügt wird.
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();
}
}
}
Weitere Informationen finden Sie unter Herstellen einer Verbindung mit Azure-Datenbanken über App Service ohne Geheimnisse mithilfe einer verwalteten Identität.
Wenn Sie für eine Spring-Anwendung eine Verbindung mit der Option --client-type springboot
erstellen, setzt Service Connector die Eigenschaften spring.datasource.url
mit dem Werteformat jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI;
auf Azure Spring Apps.
Aktualisieren Sie Ihre Anwendung nach dem Tutorial Migrieren einer Java-Anwendung zur Verwendung von kennwortlosen Verbindungen mit Azure SQL-Datenbank. Denken Sie daran, die Konfigurationseigenschaft spring.datasource.password
zu entfernen, wenn sie zuvor festgelegt wurde, und fügen Sie die richtigen Abhängigkeiten hinzu.
Installieren Sie Abhängigkeiten.
python -m pip install pyodbc
Rufen Sie die Azure SQL-Datenbank-Verbindungskonfigurationen aus der Umgebungsvariable ab, die von Service Connector hinzugefügt wurde. Wenn Sie den folgenden Code verwenden, heben Sie die Auskommentierung des Teils des Codeschnipsels für den Authentifizierungstyp auf, den Sie verwenden möchten. Wenn Sie Azure Container Apps als Computedienst verwenden oder die Verbindungszeichenfolge im Codeausschnitt nicht funktioniert, lesen Sie Migrieren einer Python-Anwendung, um kennwortlose Verbindungen mit Azure SQL-Datenbank zum Herstellen einer Verbindung mit Azure SQL-Datenbank mithilfe eines Zugriffstokens zu verwenden.
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)
- Installieren Sie Abhängigkeiten.
npm install mssql
- Rufen Sie die Azure SQL-Datenbank-Verbindungskonfigurationen aus den vom Dienstconnector hinzugefügten Umgebungsvariablen ab. Wenn Sie den folgenden Code verwenden, heben Sie die Auskommentierung des Teils des Codeschnipsels für den Authentifizierungstyp auf, den Sie verwenden möchten.
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);
Für andere Sprachen können Sie die Verbindungseigenschaften verwenden, die der Dienstconnector auf die Umgebungsvariablen festgelegt hat, um eine Verbindung mit der Datenbank herzustellen. Weitere Informationen zu Umgebungsvariablen finden Sie unter Integrieren von Azure SQL-Datenbank mit dem Dienstconnector.
Weitere Informationen finden Sie unter Startseite für die Clientprogrammierung in Microsoft SQL Server.
Verbindungszeichenfolge
Warnung
Microsoft empfiehlt, immer den sichersten Authentifizierungsflow zu verwenden. Der in diesem Verfahren beschriebene Authentifizierungsflow erfordert ein sehr hohes Maß an Vertrauen in die Anwendung und birgt Risiken, die bei anderen Flows nicht vorhanden sind. Sie sollten diesen Flow nur verwenden, wenn andere sicherere Flows (z. B. verwaltete Identitäten) nicht anwendbar sind.
Standardname der Umgebungsvariablen |
Beschreibung |
Beispielwert |
AZURE_SQL_CONNECTIONSTRING |
Verbindungszeichenfolge für Azure SQL-Datenbank |
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;Password=<sql-password> |
Standardname der Umgebungsvariablen |
Beschreibung |
Beispielwert |
AZURE_SQL_CONNECTIONSTRING |
Verbindungszeichenfolge für Azure SQL-Datenbank |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-database>;user=<sql-username>;password=<sql-password>; |
Standardname der Umgebungsvariablen |
Beschreibung |
Beispielwert |
spring.datasource.url |
Datenquellen-URL für Azure SQL-Datenbank |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>; |
spring.datasource.username |
Datenquellen-Benutzername für Azure SQL-Datenbank |
<sql-user> |
spring.datasource.password |
Datenquellenkennwort für Azure SQL-Datenbank |
<sql-password> |
Standardname der Umgebungsvariablen |
Beschreibung |
Beispielwert |
AZURE_SQL_SERVER |
Azure SQL-Datenbank-Server |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port für Azure SQL-Datenbank |
1433 |
AZURE_SQL_DATABASE |
Datenbank für Azure SQL-Datenbank |
<sql-database> |
AZURE_SQL_USER |
Benutzer in Azure SQL-Datenbank |
<sql-username> |
AZURE_SQL_PASSWORD |
Kennwort für Azure SQL-Datenbank |
<sql-password> |
Standardname der Umgebungsvariablen |
Beschreibung |
Beispielwert |
AZURE_SQL_HOST |
Host für Azure SQL-Datenbank |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port für Azure SQL-Datenbank |
1433 |
AZURE_SQL_NAME |
Name der Azure SQL-Datenbank-Instanz |
<sql-database> |
AZURE_SQL_USER |
Benutzer in Azure SQL-Datenbank |
<sql-username> |
AZURE_SQL_PASSWORD |
Kennwort für Azure SQL-Datenbank |
<sql-password> |
Standardname der Umgebungsvariablen |
Beschreibung |
Beispielwert |
AZURE_SQL_CONNECTIONSTRING |
Verbindungszeichenfolge für Azure SQL-Datenbank |
server=<sql-server>.database.windows.net;port=1433;database=<sql-database>;user id=<sql-username>;password=<sql-password>; |
Standardname der Umgebungsvariablen |
Beschreibung |
Beispielwert |
AZURE_SQL_SERVER |
Azure SQL-Datenbank-Server |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port für Azure SQL-Datenbank |
1433 |
AZURE_SQL_DATABASE |
Datenbank für Azure SQL-Datenbank |
<sql-database> |
AZURE_SQL_USERNAME |
Benutzername für Azure SQL-Datenbank |
<sql-username> |
AZURE_SQL_PASSWORD |
Kennwort für Azure SQL-Datenbank |
<sql-password> |
Standardname der Umgebungsvariablen |
Beschreibung |
Beispielwert |
AZURE_SQL_SERVERNAME |
Servername für Azure SQL-Datenbank |
<sql-server>.database.windows.net,1433 |
AZURE_SQL_DATABASE |
Datenbank für Azure SQL-Datenbank |
<sql-database> |
AZURE_SQL_UID |
Eindeutiger Bezeichner (UID) für Azure SQL-Datenbank |
<sql-username> |
AZURE_SQL_PASSWORD |
Kennwort für Azure SQL-Datenbank |
<sql-password> |
Standardname der Umgebungsvariablen |
Beschreibung |
Beispielwert |
AZURE_SQL_HOST |
Host für Azure SQL-Datenbank |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port für Azure SQL-Datenbank |
1433 |
AZURE_SQL_DATABASE |
Datenbank für Azure SQL-Datenbank |
<sql-database> |
AZURE_SQL_USERNAME |
Benutzername für Azure SQL-Datenbank |
<sql-username> |
AZURE_SQL_PASSWORD |
Kennwort für Azure SQL-Datenbank |
<sql-password> |
Standardname der Umgebungsvariablen |
Beschreibung |
Beispielwert |
AZURE_SQL_HOST |
Host für Azure SQL-Datenbank |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port für Azure SQL-Datenbank |
1433 |
AZURE_SQL_DATABASE |
Datenbank für Azure SQL-Datenbank |
<sql-database> |
AZURE_SQL_USERNAME |
Benutzername für Azure SQL-Datenbank |
<sql-username> |
AZURE_SQL_PASSWORD |
Kennwort für Azure SQL-Datenbank |
<sql-password> |
Beispielcode
Lesen Sie die Schritte und den folgenden Code, um eine Verbindung mit der Azure SQL-Datenbank mithilfe einer Verbindungszeichenfolge.
Installieren Sie Abhängigkeiten.
dotnet add package Microsoft.Data.SqlClient
Rufen Sie die Azure SQL-Datenbank-Verbindungszeichenfolge aus der Umgebungsvariable ab, die vom Dienstconnector hinzugefügt wird.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Fügen Sie der Datei pom.xml die folgenden Abhängigkeiten hinzu:
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>10.2.0.jre11</version>
</dependency>
Rufen Sie die Azure SQL-Datenbank-Verbindungszeichenfolge aus der Umgebungsvariable ab, die vom Dienstconnector hinzugefügt wird.
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();
}
}
}
- Fügen Sie eine Abhängigkeit in Ihrer Datei „pom.xml“ hinzu.
<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>
- Richten Sie die Spring-Anwendung ein. Die Verbindungskonfigurationen werden Spring-Apps vom Dienstconnector hinzugefügt.
Installieren Sie Abhängigkeiten.
python -m pip install pyodbc
Rufen Sie die Azure SQL-Datenbank-Verbindungskonfigurationen aus der Umgebungsvariable ab, die von Service Connector hinzugefügt wurde.
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)
Installieren Sie Abhängigkeiten.
pip install django
pip install pyodbc
Rufen Sie in der Einstellungsdatei die Azure SQL-Datenbank-Verbindungskonfigurationen aus der Umgebungsvariable ab, die vom Dienstconnector hinzugefügt wurde.
# 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',
},
},
}
Installieren Sie die Abhängigkeit.
go install github.com/microsoft/go-mssqldb@latest
Rufen Sie die Azure SQL-Datenbank-Verbindungszeichenfolge aus der Umgebungsvariable ab, die vom Dienstconnector hinzugefügt wird.
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")
- Installieren Sie Abhängigkeiten.
npm install mssql
- Rufen Sie die Azure SQL-Datenbank-Verbindungskonfigurationen aus den vom Dienstconnector hinzugefügten Umgebungsvariablen ab.
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);
Laden Sie die Microsoft-Treiber für PHP für SQL Server herunter. Weitere Informationen finden Sie unter Erste Schritte mit den Microsoft-Treibern für PHP für SQL Server.
Rufen Sie die Azure SQL-Datenbank-Verbindungskonfigurationen aus den vom Dienstconnector hinzugefügten Umgebungsvariablen ab.
<?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);
?>
Laden Sie den Ruby-Treiber für SQL Server herunter. Weitere Informationen finden Sie unter Konfigurieren der Entwicklungsumgebung für Ruby-Bereitstellung.
Rufen Sie die Azure SQL-Datenbank-Verbindungskonfigurationen aus den vom Dienstconnector hinzugefügten Umgebungsvariablen ab.
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
Für andere Sprachen können Sie die Verbindungseigenschaften verwenden, die der Dienstconnector auf die Umgebungsvariablen festgelegt hat, um eine Verbindung mit der Datenbank herzustellen. Weitere Informationen zu Umgebungsvariablen finden Sie unter Integrieren von Azure SQL-Datenbank mit dem Dienstconnector.
Weitere Informationen finden Sie unter Startseite für die Clientprogrammierung in Microsoft SQL Server.
Dienstprinzipal
Standardname der Umgebungsvariablen |
Beschreibung |
Beispielswert |
AZURE_SQL_CLIENTID |
Ihre Client-ID |
<client-ID> |
AZURE_SQL_CLIENTSECRET |
Ihr geheimer Clientschlüssel |
<client-secret> |
AZURE_SQL_TENANTID |
Ihre Mandanten-ID |
<tenant-ID> |
AZURE_SQL_CONNECTIONSTRING |
Verbindungszeichenfolge für Azure SQL-Datenbank |
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;User ID=<client-Id>;Password=<client-secret>;Authentication=ActiveDirectoryServicePrincipal |
Standardname der Umgebungsvariablen |
Beschreibung |
Beispielwert |
AZURE_SQL_CONNECTIONSTRING |
Verbindungszeichenfolge für Azure SQL-Datenbank |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-database>;user=<client-Id>;password=<client-secret>;authentication=ActiveDirectoryServicePrincipal; |
Standardname der Umgebungsvariablen |
Beschreibung |
Beispielwert |
spring.datasource.url |
Datenquellen-URL für Azure SQL-Datenbank |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryServicePrincipal; |
spring.datasource.username |
Datenquellen-Benutzername für Azure SQL-Datenbank |
<client-Id> |
spring.datasource.password |
Datenquellenkennwort für Azure SQL-Datenbank |
<client-Secret> |
Standardname der Umgebungsvariablen |
Beschreibung |
Beispielwert |
AZURE_SQL_SERVER |
Azure SQL-Datenbank-Server |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port für Azure SQL-Datenbank |
1433 |
AZURE_SQL_DATABASE |
Datenbank für Azure SQL-Datenbank |
<sql-database> |
AZURE_SQL_USER |
Benutzer in Azure SQL-Datenbank |
your Client Id |
AZURE_SQL_AUTHENTICATION |
Azure SQL-Authentifizierung |
ActiveDirectoryServerPrincipal |
AZURE_SQL_PASSWORD |
Kennwort für Azure SQL-Datenbank |
your Client Secret |
Standardname der Umgebungsvariablen |
Beschreibung |
Beispielwert |
AZURE_SQL_SERVER |
Azure SQL-Datenbank-Server |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port für Azure SQL-Datenbank |
1433 |
AZURE_SQL_DATABASE |
Datenbank für Azure SQL-Datenbank |
<sql-database> |
AZURE_SQL_AUTHENTICATIONTYPE |
Typ der Azure SQL-Datenbank-Authentifizierung |
azure-active-directory-default |
AZURE_SQL_CLIENTID |
Client-ID der Azure SQL-Datenbank |
<your Client ID> |
AZURE_SQL_CLIENTSECRET |
Geheimer Clientschlüssel für Azure SQL-Datenbank |
<your Client Secret > |
AZURE_SQL_TENANTID |
Mandanten-ID der Azure SQL-Datenbank |
<your Tenant ID> |
Standardname der Umgebungsvariablen |
Beschreibung |
Beispielwert |
AZURE_SQL_HOST |
Azure SQL-Datenbank-Server |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Port für Azure SQL-Datenbank |
1433 |
AZURE_SQL_DATABASE |
Datenbank für Azure SQL-Datenbank |
<sql-database> |
AZURE_SQL_AUTHENTICATION |
Typ der Azure SQL-Datenbank-Authentifizierung |
azure-active-directory-default |
AZURE_SQL_USERNAME |
Client-ID der Azure SQL-Datenbank |
<your Client ID> |
AZURE_SQL_PASSWORD |
Geheimer Clientschlüssel für Azure SQL-Datenbank |
<your Client Secret > |
Beispielcode
Lesen Sie die Schritte und den folgenden Code, um eine Verbindung mit der Azure SQL-Datenbank mithilfe eines Dienstprinzipals.
Installieren Sie Abhängigkeiten.
dotnet add package Microsoft.Data.SqlClient
Rufen Sie die Azure SQL-Datenbank-Verbindungszeichenfolge aus der Umgebungsvariable ab, die vom Dienstconnector hinzugefügt wird.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Weitere Informationen finden Sie unter Verwenden der Active Directory mit verwalteter Identität-Authentifizierung.
Fügen Sie der Datei pom.xml die folgenden Abhängigkeiten hinzu:
<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>
Rufen Sie die Azure SQL-Datenbank-Verbindungszeichenfolge aus der Umgebungsvariable ab, die vom Dienstconnector hinzugefügt wird.
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();
}
}
}
Weitere Informationen finden Sie unter Herstellen einer Verbindung mit Azure-Datenbanken über App Service ohne Geheimnisse mithilfe einer verwalteten Identität.
Wenn Sie für eine Spring-Anwendung eine Verbindung mit der Option --client-type springboot
erstellen, setzt Service Connector die Eigenschaften spring.datasource.url
mit dem Werteformat jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI;
auf Azure Spring Apps.
Aktualisieren Sie Ihre Anwendung nach dem Tutorial Migrieren einer Java-Anwendung zur Verwendung von kennwortlosen Verbindungen mit Azure SQL-Datenbank. Denken Sie daran, die Konfigurationseigenschaft spring.datasource.password
zu entfernen, wenn sie zuvor festgelegt wurde, und fügen Sie die richtigen Abhängigkeiten hinzu.
Installieren Sie Abhängigkeiten.
python -m pip install pyodbc
Rufen Sie die Azure SQL-Datenbank-Verbindungskonfigurationen aus der Umgebungsvariable ab, die von Service Connector hinzugefügt wurde. Wenn Sie den folgenden Code verwenden, heben Sie die Auskommentierung des Teils des Codeschnipsels für den Authentifizierungstyp auf, den Sie verwenden möchten. Wenn Sie Azure Container Apps als Computedienst verwenden oder die Verbindungszeichenfolge im Codeausschnitt nicht funktioniert, lesen Sie Migrieren einer Python-Anwendung, um kennwortlose Verbindungen mit Azure SQL-Datenbank zum Herstellen einer Verbindung mit Azure SQL-Datenbank mithilfe eines Zugriffstokens zu verwenden.
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)
- Installieren Sie Abhängigkeiten.
npm install mssql
- Rufen Sie die Azure SQL-Datenbank-Verbindungskonfigurationen aus den vom Dienstconnector hinzugefügten Umgebungsvariablen ab. Wenn Sie den folgenden Code verwenden, heben Sie die Auskommentierung des Teils des Codeschnipsels für den Authentifizierungstyp auf, den Sie verwenden möchten.
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);
Für andere Sprachen können Sie die Verbindungseigenschaften verwenden, die der Dienstconnector auf die Umgebungsvariablen festgelegt hat, um eine Verbindung mit der Datenbank herzustellen. Weitere Informationen zu Umgebungsvariablen finden Sie unter Integrieren von Azure SQL-Datenbank mit dem Dienstconnector.
Weitere Informationen finden Sie unter Startseite für die Clientprogrammierung in Microsoft SQL Server.
Nächste Schritte
Arbeiten Sie das unten aufgeführte Tutorial durch, um mehr über den Dienstconnector zu erfahren.