Az Azure SQL Database integrálása a Service Connector használatával
Cikk
Ez a lap a támogatott hitelesítési módszereket és ügyfeleket mutatja be, valamint a számítási szolgáltatások Azure SQL Database-hez a Service Connector használatával való csatlakoztatásához használható mintakódot. Előfordulhat, hogy más módszerekkel is csatlakozhat az Azure SQL Database-hez. Ez a lap a szolgáltatáskapcsolat létrehozásakor megkapott alapértelmezett környezeti változóneveket és értékeket is megjeleníti.
Támogatott számítási szolgáltatások
A Service Connector a következő számítási szolgáltatásokat csatlakoztathatja az Azure SQL Database-hez:
Azure App Service
Azure Container-alkalmazások
Azure Functions
Azure Kubernetes Service (AKS)
Azure Spring Apps
Támogatott hitelesítési típusok és ügyfelek
Az alábbi táblázat azt mutatja be, hogy a hitelesítési módszerek és az ügyfelek mely kombinációi támogatottak a számítási szolgáltatás azure SQL Database-hez való csatlakoztatásához a Service Connector használatával. Az "Igen" azt jelzi, hogy a kombináció támogatott, míg a "Nem" azt jelzi, hogy nem támogatott.
Ügyfél típusa
Rendszer által hozzárendelt felügyelt identitás
Felhasználó által hozzárendelt felügyelt identitás
Titkos kód/kapcsolati sztring
Szolgáltatásnév
.NET
Igen
Igen
Igen
Igen
Go
Nem
Nem
Igen
Nem
Java
Igen
Igen
Igen
Igen
Java – Spring Boot
Igen
Igen
Igen
Igen
Node.js
Igen
Igen
Igen
Igen
PHP
Nem
Nem
Igen
Nem
Python
Igen
Igen
Igen
Igen
Python – Django
Nem
Nem
Igen
Nem
Ruby
Nem
Nem
Igen
Nem
Egyik sem
Igen
Igen
Igen
Igen
Ez a táblázat azt jelzi, hogy a Secret/kapcsolati sztring metódus minden ügyféltípus esetében támogatott. A rendszer által hozzárendelt felügyelt identitás, felhasználó által hozzárendelt felügyelt identitás és szolgáltatásnév metódusok támogatottak a .NET, Java, Java – Spring Boot, Node.js, Python és None ügyféltípusokhoz. Ezek a metódusok go, PHP, Django és Ruby-ügyféltípusok esetén nem támogatottak.
Feljegyzés
A rendszer által hozzárendelt felügyelt identitás, a felhasználó által hozzárendelt felügyelt identitás és a szolgáltatásnév csak az Azure CLI-n támogatott.
Alapértelmezett környezeti változónevek vagy alkalmazástulajdonságok és mintakód
Az alábbi kapcsolati adatok segítségével csatlakoztathatja a számítási szolgáltatásokat az Azure SQL Database-hez. Az alábbi példákban cserélje le a helyőrző szövegeket<sql-server>, <sql-database><sql-username>majd <sql-password> a saját kiszolgálónevét, adatbázisnevét, felhasználói azonosítóját és jelszavát. Az elnevezési konvenciókról a Service Connector belsős cikkében talál további információt.
Tekintse meg az alábbi lépéseket és kódot az Azure SQL Database-hez való csatlakozáshoz egy rendszer által hozzárendelt felügyelt identitás használatával.
Kérje le az Azure SQL Database kapcsolati sztring a Service Connector által hozzáadott környezeti változóból.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Kérje le az Azure SQL Database kapcsolati sztring a Service Connector által hozzáadott környezeti változóból.
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();
}
}
}
Spring-alkalmazások esetén, ha egy beállítással --client-type springboothoz létre kapcsolatot, a Service Connector értékformátummal jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; állítja be a tulajdonságokat spring.datasource.url az Azure Spring Appsre.
Frissítse az alkalmazást a Java-alkalmazások áttelepítése jelszó nélküli kapcsolatok használatára az Azure SQL Database-lel című oktatóanyagot követve. Ne felejtse el eltávolítani a spring.datasource.password konfigurációs tulajdonságot, ha korábban be lett állítva, és adja hozzá a megfelelő függőségeket.
Telepítse a függőségeket.
python -m pip install pyodbc
Kérje le az Azure SQL Database kapcsolatkonfigurációit a Service Connector által hozzáadott környezeti változóból. Az alábbi kód használatakor bontsa ki a kódrészlet azon részét, amely a használni kívánt hitelesítési típushoz tartozik. Ha számítási szolgáltatásként használja az Azure Container Appst, vagy a kódrészlet kapcsolati sztring nem működik, tekintse meg a Python-alkalmazás migrálását, amely jelszó nélküli kapcsolatokat használ az Azure SQL Database-zel az Azure SQL Database-hez való csatlakozáshoz hozzáférési jogkivonat használatával.
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)
Telepítse a függőségeket.
npm install mssql
Kérje le az Azure SQL Database kapcsolatkonfigurációit a Service Connector által hozzáadott környezeti változókból. Az alábbi kód használatakor bontsa ki a kódrészlet azon részét, amely a használni kívánt hitelesítési típushoz tartozik.
Más nyelvek esetén használja a Service Connector által a környezeti változókhoz megadott kapcsolati tulajdonságokat az adatbázis csatlakoztatásához. A környezeti változók részleteiért lásd: Azure SQL Database integrálása a Service Connectornal.
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;User ID=<identity-client-ID>;Authentication=ActiveDirectoryManagedIdentity
Kérje le az Azure SQL Database kapcsolati sztring a Service Connector által hozzáadott környezeti változóból.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Kérje le az Azure SQL Database kapcsolati sztring a Service Connector által hozzáadott környezeti változóból.
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();
}
}
}
Spring-alkalmazások esetén, ha egy beállítással --client-type springboothoz létre kapcsolatot, a Service Connector értékformátummal jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; állítja be a tulajdonságokat spring.datasource.url az Azure Spring Appsre.
Frissítse az alkalmazást a Java-alkalmazások áttelepítése jelszó nélküli kapcsolatok használatára az Azure SQL Database-lel című oktatóanyagot követve. Ne felejtse el eltávolítani a spring.datasource.password konfigurációs tulajdonságot, ha korábban be lett állítva, és adja hozzá a megfelelő függőségeket.
Telepítse a függőségeket.
python -m pip install pyodbc
Kérje le az Azure SQL Database kapcsolatkonfigurációit a Service Connector által hozzáadott környezeti változóból. Az alábbi kód használatakor bontsa ki a kódrészlet azon részét, amely a használni kívánt hitelesítési típushoz tartozik. Ha számítási szolgáltatásként használja az Azure Container Appst, vagy a kódrészlet kapcsolati sztring nem működik, tekintse meg a Python-alkalmazás migrálását, amely jelszó nélküli kapcsolatokat használ az Azure SQL Database-zel az Azure SQL Database-hez való csatlakozáshoz hozzáférési jogkivonat használatával.
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)
Telepítse a függőségeket.
npm install mssql
Kérje le az Azure SQL Database kapcsolatkonfigurációit a Service Connector által hozzáadott környezeti változókból. Az alábbi kód használatakor bontsa ki a kódrészlet azon részét, amely a használni kívánt hitelesítési típushoz tartozik.
Más nyelvek esetén használja a Service Connector által a környezeti változókhoz megadott kapcsolati tulajdonságokat az adatbázis csatlakoztatásához. A környezeti változók részleteiért lásd: Azure SQL Database integrálása a Service Connectornal.
A Microsoft azt javasolja, hogy a legbiztonságosabb hitelesítési folyamatot használja. Az ebben az eljárásban leírt hitelesítési folyamat nagyon nagy megbízhatóságot igényel az alkalmazásban, és olyan kockázatokat hordoz, amelyek más folyamatokban nem jelennek meg. Ezt a folyamatot csak akkor érdemes használni, ha más biztonságosabb folyamatok, például a felügyelt identitások nem életképesek.
Kérje le az Azure SQL Database kapcsolati sztring a Service Connector által hozzáadott környezeti változóból.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Adja hozzá a következő függőségeket a pom.xml fájlhoz:
Töltse le a Microsoft Drivers for PHP for SQL Servert. További információkért tekintse meg az SQL Server PHP-hez készült Microsoft Drivers használatának első lépéseit.
Kérje le az Azure SQL Database kapcsolatkonfigurációit a Service Connector által hozzáadott környezeti változókból.
Töltse le az SQL Serverhez készült Ruby-illesztőprogramot. További információkért tekintse meg a Ruby-fejlesztés fejlesztési környezetének konfigurálását.
Kérje le az Azure SQL Database kapcsolatkonfigurációit a Service Connector által hozzáadott környezeti változókból.
Más nyelvek esetén használja a Service Connector által a környezeti változókhoz megadott kapcsolati tulajdonságokat az adatbázis csatlakoztatásához. A környezeti változók részleteiért lásd: Azure SQL Database integrálása a Service Connectornal.
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;User ID=<client-Id>;Password=<client-secret>;Authentication=ActiveDirectoryServicePrincipal
Kérje le az Azure SQL Database kapcsolati sztring a Service Connector által hozzáadott környezeti változóból.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Kérje le az Azure SQL Database kapcsolati sztring a Service Connector által hozzáadott környezeti változóból.
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();
}
}
}
Spring-alkalmazások esetén, ha egy beállítással --client-type springboothoz létre kapcsolatot, a Service Connector értékformátummal jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; állítja be a tulajdonságokat spring.datasource.url az Azure Spring Appsre.
Frissítse az alkalmazást a Java-alkalmazások áttelepítése jelszó nélküli kapcsolatok használatára az Azure SQL Database-lel című oktatóanyagot követve. Ne felejtse el eltávolítani a spring.datasource.password konfigurációs tulajdonságot, ha korábban be lett állítva, és adja hozzá a megfelelő függőségeket.
Telepítse a függőségeket.
python -m pip install pyodbc
Kérje le az Azure SQL Database kapcsolatkonfigurációit a Service Connector által hozzáadott környezeti változóból. Az alábbi kód használatakor bontsa ki a kódrészlet azon részét, amely a használni kívánt hitelesítési típushoz tartozik. Ha számítási szolgáltatásként használja az Azure Container Appst, vagy a kódrészlet kapcsolati sztring nem működik, tekintse meg a Python-alkalmazás migrálását, amely jelszó nélküli kapcsolatokat használ az Azure SQL Database-zel az Azure SQL Database-hez való csatlakozáshoz hozzáférési jogkivonat használatával.
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)
Telepítse a függőségeket.
npm install mssql
Kérje le az Azure SQL Database kapcsolatkonfigurációit a Service Connector által hozzáadott környezeti változókból. Az alábbi kód használatakor bontsa ki a kódrészlet azon részét, amely a használni kívánt hitelesítési típushoz tartozik.
Más nyelvek esetén használja a Service Connector által a környezeti változókhoz megadott kapcsolati tulajdonságokat az adatbázis csatlakoztatásához. A környezeti változók részleteiért lásd: Azure SQL Database integrálása a Service Connectornal.