Integrera Azure SQL Database med Service Connector
Artikel
Den här sidan visar autentiseringsmetoder och klienter som stöds och visar exempelkod som du kan använda för att ansluta beräkningstjänster till Azure SQL Database med hjälp av Service Connector. Du kanske fortfarande kan ansluta till Azure SQL Database med hjälp av andra metoder. På den här sidan visas även standardnamn och värden för miljövariabler som du får när du skapar tjänstanslutningen.
Beräkningstjänster som stöds
Service Connector kan användas för att ansluta följande beräkningstjänster till Azure SQL Database:
Azure App Service
Azure Container Apps
Azure Functions
Azure Kubernetes Service (AKS)
Azure Spring Apps
Autentiseringstyper och klienter som stöds
Tabellen nedan visar vilka kombinationer av autentiseringsmetoder och klienter som stöds för att ansluta beräkningstjänsten till Azure SQL Database med hjälp av Service Connector. Ett "Ja" anger att kombinationen stöds, medan ett "Nej" anger att den inte stöds.
Klienttyp
Systemtilldelad hanterad identitet
Användartilldelad hanterad identitet
Hemlighet/anslutningssträng
Tjänstens huvudnamn
.NET
Ja
Ja
Ja
Ja
Go
Nej
Nej
Ja
Nej
Java
Ja
Ja
Ja
Ja
Java – Spring Boot
Ja
Ja
Ja
Ja
Node.js
Ja
Ja
Ja
Ja
PHP
Nej
Nej
Ja
Nej
Python
Ja
Ja
Ja
Ja
Python – Django
Nej
Nej
Ja
Nej
Ruby
Nej
Nej
Ja
Nej
Ingen
Ja
Ja
Ja
Ja
Den här tabellen anger att metoden Secret/anslutningssträng stöds för alla klienttyper. Systemtilldelade hanterade identiteter, användartilldelade hanterade identiteter och tjänstens huvudnamn stöds för klienttyperna .NET, Java, Java – Spring Boot, Node.js, Python och None. Dessa metoder stöds inte för Go-, PHP-, Django- och Ruby-klienttyper.
Kommentar
Systemtilldelad hanterad identitet, användartilldelad hanterad identitet och tjänstens huvudnamn stöds endast i Azure CLI.
Standardnamn för miljövariabler eller programegenskaper och exempelkod
Använd anslutningsinformationen nedan för att ansluta beräkningstjänster till Azure SQL Database. För varje exempel nedan ersätter du platshållartexterna <sql-server>, <sql-database>, <sql-username>och <sql-password> med ditt eget servernamn, databasnamn, användar-ID och lösenord. Mer information om namngivningskonventioner finns i artikeln interna serviceanslutningsprogram .
Hämta Azure SQL Database-anslutningssträng från miljövariabeln som lagts till av Service Connector.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Hämta Azure SQL Database-anslutningssträng från miljövariabeln som lagts till av Service Connector.
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();
}
}
}
För ett Spring-program anger Service Connector egenskaperna spring.datasource.url med värdeformatet jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; till Azure Spring Apps om du skapar en anslutning med alternativet --client-type springboot.
Hämta Azure SQL Database-anslutningskonfigurationerna från miljövariabeln som lagts till av Service Connector. När du använder koden nedan avkommentarer du delen av kodfragmentet för den autentiseringstyp som du vill använda. Om du använder Azure Container Apps som beräkningstjänst eller om anslutningssträng i kodfragmentet inte fungerar läser du Migrera ett Python-program för att använda lösenordslösa anslutningar med Azure SQL Database för att ansluta till Azure SQL Database med hjälp av en åtkomsttoken.
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)
Installera beroenden.
npm install mssql
Hämta Azure SQL Database-anslutningskonfigurationerna från miljövariablerna som lagts till av Service Connector. När du använder koden nedan avkommentarer du delen av kodfragmentet för den autentiseringstyp som du vill använda.
För andra språk använder du de anslutningsegenskaper som Service Connector anger för miljövariablerna för att ansluta databasen. Information om miljövariabler finns i Integrera Azure SQL Database med Service Connector.
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;User ID=<identity-client-ID>;Authentication=ActiveDirectoryManagedIdentity
Hämta Azure SQL Database-anslutningssträng från miljövariabeln som lagts till av Service Connector.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Hämta Azure SQL Database-anslutningssträng från miljövariabeln som lagts till av Service Connector.
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();
}
}
}
För ett Spring-program anger Service Connector egenskaperna spring.datasource.url med värdeformatet jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; till Azure Spring Apps om du skapar en anslutning med alternativet --client-type springboot.
Hämta Azure SQL Database-anslutningskonfigurationerna från miljövariabeln som lagts till av Service Connector. När du använder koden nedan avkommentarer du delen av kodfragmentet för den autentiseringstyp som du vill använda. Om du använder Azure Container Apps som beräkningstjänst eller om anslutningssträng i kodfragmentet inte fungerar läser du Migrera ett Python-program för att använda lösenordslösa anslutningar med Azure SQL Database för att ansluta till Azure SQL Database med hjälp av en åtkomsttoken.
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)
Installera beroenden.
npm install mssql
Hämta Azure SQL Database-anslutningskonfigurationerna från miljövariablerna som lagts till av Service Connector. När du använder koden nedan avkommentarer du delen av kodfragmentet för den autentiseringstyp som du vill använda.
För andra språk använder du de anslutningsegenskaper som Service Connector anger för miljövariablerna för att ansluta databasen. Information om miljövariabler finns i Integrera Azure SQL Database med Service Connector.
Microsoft rekommenderar att du använder det säkraste tillgängliga autentiseringsflödet. Det autentiseringsflöde som beskrivs i den här proceduren kräver mycket stort förtroende för programmet och medför risker som inte finns i andra flöden. Du bör bara använda det här flödet när andra säkrare flöden, till exempel hanterade identiteter, inte är livskraftiga.
Hämta Azure SQL Database-anslutningssträng från miljövariabeln som lagts till av Service Connector.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
För andra språk använder du de anslutningsegenskaper som Service Connector anger för miljövariablerna för att ansluta databasen. Information om miljövariabler finns i Integrera Azure SQL Database med Service Connector.
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;User ID=<client-Id>;Password=<client-secret>;Authentication=ActiveDirectoryServicePrincipal
Hämta Azure SQL Database-anslutningssträng från miljövariabeln som lagts till av Service Connector.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Hämta Azure SQL Database-anslutningssträng från miljövariabeln som lagts till av Service Connector.
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();
}
}
}
För ett Spring-program anger Service Connector egenskaperna spring.datasource.url med värdeformatet jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; till Azure Spring Apps om du skapar en anslutning med alternativet --client-type springboot.
Hämta Azure SQL Database-anslutningskonfigurationerna från miljövariabeln som lagts till av Service Connector. När du använder koden nedan avkommentarer du delen av kodfragmentet för den autentiseringstyp som du vill använda. Om du använder Azure Container Apps som beräkningstjänst eller om anslutningssträng i kodfragmentet inte fungerar läser du Migrera ett Python-program för att använda lösenordslösa anslutningar med Azure SQL Database för att ansluta till Azure SQL Database med hjälp av en åtkomsttoken.
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)
Installera beroenden.
npm install mssql
Hämta Azure SQL Database-anslutningskonfigurationerna från miljövariablerna som lagts till av Service Connector. När du använder koden nedan avkommentarer du delen av kodfragmentet för den autentiseringstyp som du vill använda.
För andra språk använder du de anslutningsegenskaper som Service Connector anger för miljövariablerna för att ansluta databasen. Information om miljövariabler finns i Integrera Azure SQL Database med Service Connector.