Questa pagina illustra i metodi e i client di autenticazione supportati e mostra il codice di esempio che è possibile usare per connettere i servizi di calcolo al database SQL di Azure AI tramite il connettore di servizi. Potrebbe comunque essere possibile connettersi al database SQL di Azure usando altri metodi. Questa pagina mostra anche i nomi e i valori predefiniti delle variabili di ambiente che si ottengono quando si crea la connessione al servizio.
Servizi di calcolo supportati
Il connettore di servizi può essere usato per connettere i servizi di calcolo seguenti al database SQL di Azure:
- Servizio app di Azure
- App contenitore di Azure
- Funzioni di Azure
- Servizio Azure Kubernetes (AKS)
- Azure Spring Apps
Tipi di autenticazione e client supportati
La tabella seguente illustra le combinazioni di metodi di autenticazione e client supportati per la connessione del servizio di calcolo al database SQL di Azure tramite il connettore di servizi. Un valore "Sì" indica che la combinazione è supportata, mentre "No" indica che non è supportata.
| Tipo client |
Identità gestita assegnata dal sistema |
Identità gestita assegnata dall'utente |
Stringa di segreto/connessione |
Entità servizio |
| .NET |
Sì |
Sì |
Sì |
Sì |
| Go |
No |
No |
Sì |
No |
| Java |
Sì |
Sì |
Sì |
Sì |
| Java - Spring Boot |
Sì |
Sì |
Sì |
Sì |
| Node.js |
Sì |
Sì |
Sì |
Sì |
| PHP |
No |
No |
Sì |
No |
| Python |
Sì |
Sì |
Sì |
Sì |
| Python - Django |
No |
No |
Sì |
No |
| Ruby |
No |
No |
Sì |
No |
| Nessuno |
Sì |
Sì |
Sì |
Sì |
Questa tabella indica che il metodo segreto/stringa di connessione è supportato per tutti i tipi di client. I metodi Identità gestita assegnata dal sistema, Identità gestita assegnata dall'utente ed Entità servizio sono supportati per i tipi di client .NET, Java, Java - Spring Boot, Node.js, Python e Nessuno. Questi metodi non sono supportati per i tipi di client Go, PHP, Django e Ruby.
Nota
L'identità gestita assegnata dal sistema, l'identità gestita assegnata dall'utente e l'entità servizio sono supportate solo nell'interfaccia della riga di comando di Azure.
Nomi di variabili di ambiente predefiniti o proprietà dell'applicazione e codice di esempio
Usare i dettagli di connessione seguenti per connettere i servizi di calcolo al database SQL di Azure. Per ogni esempio seguente, sostituire i testi segnaposto <sql-server>, <sql-database>, <sql-username> e <sql-password> con il nome del server, il nome del database, l'ID utente e la password. Per altre informazioni sulle convenzioni di denominazione, vedere l'articolo Elementi interni di Service Connector.
Identità gestita assegnata dal sistema
| Nome variabile di ambiente predefinito |
Descrizione |
Valore di esempio |
AZURE_SQL_CONNECTIONSTRING |
Stringa di connessione del database SQL di Azure |
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;Authentication=ActiveDirectoryManagedIdentity |
| Nome variabile di ambiente predefinito |
Descrizione |
Valore di esempio |
AZURE_SQL_CONNECTIONSTRING |
Stringa di connessione del database SQL di Azure |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-database>;authentication=ActiveDirectoryMSI; |
| Nome variabile di ambiente predefinito |
Descrizione |
Valore di esempio |
spring.datasource.url |
URL dell'origine dati del database SQL di Azure |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; |
| Nome variabile di ambiente predefinito |
Descrizione |
Valore di esempio |
AZURE_SQL_SERVER |
Server di database SQL di Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta del database SQL di Azure |
1433 |
AZURE_SQL_DATABASE |
Database del database SQL di Azure |
<sql-database> |
AZURE_SQL_AUTHENTICATION |
Autenticazione SQL di Azure |
ActiveDirectoryMsi |
| Nome variabile di ambiente predefinito |
Descrizione |
Valore di esempio |
AZURE_SQL_SERVER |
Server di database SQL di Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta del database SQL di Azure |
1433 |
AZURE_SQL_DATABASE |
Database del database SQL di Azure |
<sql-database> |
AZURE_SQL_AUTHENTICATIONTYPE |
Tipo di autenticazione del database SQL di Azure |
azure-active-directory-default |
| Nome variabile di ambiente predefinito |
Descrizione |
Valore di esempio |
AZURE_SQL_HOST |
Server di database SQL di Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta del database SQL di Azure |
1433 |
AZURE_SQL_DATABASE |
Database del database SQL di Azure |
<sql-database> |
AZURE_SQL_AUTHENTICATION |
Tipo di autenticazione del database SQL di Azure |
azure-active-directory-default |
Codice di esempio
Vedere la procedura e il codice seguenti per connettersi al database SQL di Azure usando un'identità gestita assegnata dal sistema.
Installare le dipendenze.
dotnet add package Microsoft.Data.SqlClient
Ottenere la stringa di connessione del database SQL di Azure dalla variabile di ambiente aggiunta dal connettore di servizi.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Per altre informazioni, vedere Usare l’autenticazione con identità gestita di Azure Active Directory.
Aggiungere le dipendenze seguenti nel file 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>
Ottenere la stringa di connessione del database SQL di Azure dalla variabile di ambiente aggiunta dal connettore di servizi.
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();
}
}
}
Per altre informazioni, vedere Connettersi ai database di Azure dal servizio app senza segreti usando un'identità gestita.
Per un'applicazione Spring, se si crea una connessione con l'opzione --client-type springboot, il connettore di servizi imposta le proprietà spring.datasource.url con il formato valore jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; su Azure Spring Apps.
Aggiornare l'applicazione seguendo l'esercitazione Eseguire la migrazione di un'applicazione Java per usare connessioni senza password con il database SQL di Azure. Ricordarsi di rimuovere la proprietà di configurazione spring.datasource.password se è stata impostata in precedenza e aggiungere le dipendenze corrette.
Installare le dipendenze.
python -m pip install pyodbc
Ottenere le configurazioni di connessione del database SQL di Azure dalla variabile di ambiente aggiunta dal connettore di servizi. Quando si usa il codice seguente, rimuovere il commento dalla parte del frammento di codice per il tipo di autenticazione che si vuole usare. Se si usa App contenitore di Azure come servizio di calcolo o la stringa di connessione nel frammento di codice non funziona, vedere Eseguire la migrazione di un'applicazione Python per usare connessioni senza password con il database SQL di Azure, per connettersi al database SQL di Azure tramite un token di accesso.
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)
- Installare le dipendenze.
npm install mssql
- Ottenere le configurazioni di connessione del database SQL di Azure dalle variabili di ambiente aggiunte dal connettore di servizi. Quando si usa il codice seguente, rimuovere il commento dalla parte del frammento di codice per il tipo di autenticazione che si vuole usare.
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);
Per altre informazioni, vedere Home page per la programmazione client per Microsoft SQL Server.
Identità gestita assegnata dall'utente
| Nome variabile di ambiente predefinito |
Descrizione |
Valore di esempio |
AZURE_SQL_CONNECTIONSTRING |
Stringa di connessione del database SQL di Azure |
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;User ID=<identity-client-ID>;Authentication=ActiveDirectoryManagedIdentity |
| Nome variabile di ambiente predefinito |
Descrizione |
Valore di esempio |
AZURE_SQL_CONNECTIONSTRING |
Stringa di connessione del database SQL di Azure |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-database>;msiClientId=<msiClientId>;authentication=ActiveDirectoryMSI; |
| Nome variabile di ambiente predefinito |
Descrizione |
Valore di esempio |
spring.datasource.url |
URL dell'origine dati del database SQL di Azure |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;msiClientId=<msiClientId>;authentication=ActiveDirectoryMSI; |
| Nome variabile di ambiente predefinito |
Descrizione |
Valore di esempio |
AZURE_SQL_SERVER |
Server di database SQL di Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta del database SQL di Azure |
1433 |
AZURE_SQL_DATABASE |
Database del database SQL di Azure |
<sql-database> |
AZURE_SQL_USER |
Utente del database SQL di Azure |
Object (principal) ID |
AZURE_SQL_AUTHENTICATION |
Autenticazione SQL di Azure |
ActiveDirectoryMsi |
| Nome variabile di ambiente predefinito |
Descrizione |
Valore di esempio |
AZURE_SQL_SERVER |
Server di database SQL di Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta del database SQL di Azure |
1433 |
AZURE_SQL_DATABASE |
Database del database SQL di Azure |
<sql-database> |
AZURE_SQL_AUTHENTICATIONTYPE |
Tipo di autenticazione del database SQL di Azure |
azure-active-directory-default |
AZURE_SQL_CLIENTID |
ID client del database SQL di Azure |
<identity-client-ID> |
| Nome variabile di ambiente predefinito |
Descrizione |
Valore di esempio |
AZURE_SQL_HOST |
Server di database SQL di Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta del database SQL di Azure |
1433 |
AZURE_SQL_DATABASE |
Database del database SQL di Azure |
<sql-database> |
AZURE_SQL_AUTHENTICATION |
Tipo di autenticazione del database SQL di Azure |
azure-active-directory-default |
AZURE_SQL_USERNAME |
ID client del database SQL di Azure |
<your Client ID> |
Codice di esempio
Vedere la procedura e il codice seguenti per connettersi al database SQL di Azure usando un'identità gestita assegnata dall’utente.
Installare le dipendenze.
dotnet add package Microsoft.Data.SqlClient
Ottenere la stringa di connessione del database SQL di Azure dalla variabile di ambiente aggiunta dal connettore di servizi.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Per altre informazioni, vedere Usare l’autenticazione con identità gestita di Azure Active Directory.
Aggiungere le dipendenze seguenti nel file 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>
Ottenere la stringa di connessione del database SQL di Azure dalla variabile di ambiente aggiunta dal connettore di servizi.
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();
}
}
}
Per altre informazioni, vedere Connettersi ai database di Azure dal servizio app senza segreti usando un'identità gestita.
Per un'applicazione Spring, se si crea una connessione con l'opzione --client-type springboot, il connettore di servizi imposta le proprietà spring.datasource.url con il formato valore jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; su Azure Spring Apps.
Aggiornare l'applicazione seguendo l'esercitazione Eseguire la migrazione di un'applicazione Java per usare connessioni senza password con il database SQL di Azure. Ricordarsi di rimuovere la proprietà di configurazione spring.datasource.password se è stata impostata in precedenza e aggiungere le dipendenze corrette.
Installare le dipendenze.
python -m pip install pyodbc
Ottenere le configurazioni di connessione del database SQL di Azure dalla variabile di ambiente aggiunta dal connettore di servizi. Quando si usa il codice seguente, rimuovere il commento dalla parte del frammento di codice per il tipo di autenticazione che si vuole usare. Se si usa App contenitore di Azure come servizio di calcolo o la stringa di connessione nel frammento di codice non funziona, vedere Eseguire la migrazione di un'applicazione Python per usare connessioni senza password con il database SQL di Azure, per connettersi al database SQL di Azure tramite un token di accesso.
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)
- Installare le dipendenze.
npm install mssql
- Ottenere le configurazioni di connessione del database SQL di Azure dalle variabili di ambiente aggiunte dal connettore di servizi. Quando si usa il codice seguente, rimuovere il commento dalla parte del frammento di codice per il tipo di autenticazione che si vuole usare.
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);
Per altre informazioni, vedere Home page per la programmazione client per Microsoft SQL Server.
Stringa di connessione
Avviso
Microsoft consiglia di usare il flusso di autenticazione più sicuro disponibile. Il flusso di autenticazione descritto in questa procedura richiede un livello di attendibilità molto elevato nell'applicazione e comporta rischi che non sono presenti in altri flussi. Si consiglia di usare questo flusso solo quando altri flussi più sicuri, come le identità gestite, non sono validi.
| Nome variabile di ambiente predefinito |
Descrizione |
Valore di esempio |
AZURE_SQL_CONNECTIONSTRING |
Stringa di connessione del database SQL di Azure |
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;Password=<sql-password> |
| Nome variabile di ambiente predefinito |
Descrizione |
Valore di esempio |
AZURE_SQL_CONNECTIONSTRING |
Stringa di connessione del database SQL di Azure |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-database>;user=<sql-username>;password=<sql-password>; |
| Nome variabile di ambiente predefinito |
Descrizione |
Valore di esempio |
spring.datasource.url |
URL dell'origine dati del database SQL di Azure |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>; |
spring.datasource.username |
Nome utente dell'origine dati del database SQL di Azure |
<sql-user> |
spring.datasource.password |
Password dell'origine dati del database SQL di Azure |
<sql-password> |
| Nome variabile di ambiente predefinito |
Descrizione |
Valore di esempio |
AZURE_SQL_SERVER |
Server di database SQL di Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta del database SQL di Azure |
1433 |
AZURE_SQL_DATABASE |
Database del database SQL di Azure |
<sql-database> |
AZURE_SQL_USER |
Utente del database SQL di Azure |
<sql-username> |
AZURE_SQL_PASSWORD |
Password del database SQL di Azure |
<sql-password> |
| Nome variabile di ambiente predefinito |
Descrizione |
Valore di esempio |
AZURE_SQL_HOST |
Host del database SQL di Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta del database SQL di Azure |
1433 |
AZURE_SQL_NAME |
Nome del database SQL di Azure |
<sql-database> |
AZURE_SQL_USER |
Utente del database SQL di Azure |
<sql-username> |
AZURE_SQL_PASSWORD |
Password del database SQL di Azure |
<sql-password> |
| Nome variabile di ambiente predefinito |
Descrizione |
Valore di esempio |
AZURE_SQL_CONNECTIONSTRING |
Stringa di connessione del database SQL di Azure |
server=<sql-server>.database.windows.net;port=1433;database=<sql-database>;user id=<sql-username>;password=<sql-password>; |
| Nome variabile di ambiente predefinito |
Descrizione |
Valore di esempio |
AZURE_SQL_SERVER |
Server di database SQL di Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta del database SQL di Azure |
1433 |
AZURE_SQL_DATABASE |
Database del database SQL di Azure |
<sql-database> |
AZURE_SQL_USERNAME |
Nome utente del database SQL di Azure |
<sql-username> |
AZURE_SQL_PASSWORD |
Password del database SQL di Azure |
<sql-password> |
| Nome variabile di ambiente predefinito |
Descrizione |
Valore di esempio |
AZURE_SQL_SERVERNAME |
Nome server del database SQL di Azure |
<sql-server>.database.windows.net,1433 |
AZURE_SQL_DATABASE |
Database del database SQL di Azure |
<sql-database> |
AZURE_SQL_UID |
Identificatore univoco (UID) del database SQL di Azure |
<sql-username> |
AZURE_SQL_PASSWORD |
Password del database SQL di Azure |
<sql-password> |
| Nome variabile di ambiente predefinito |
Descrizione |
Valore di esempio |
AZURE_SQL_HOST |
Host del database SQL di Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta del database SQL di Azure |
1433 |
AZURE_SQL_DATABASE |
Database del database SQL di Azure |
<sql-database> |
AZURE_SQL_USERNAME |
Nome utente del database SQL di Azure |
<sql-username> |
AZURE_SQL_PASSWORD |
Password del database SQL di Azure |
<sql-password> |
| Nome variabile di ambiente predefinito |
Descrizione |
Valore di esempio |
AZURE_SQL_HOST |
Host del database SQL di Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta del database SQL di Azure |
1433 |
AZURE_SQL_DATABASE |
Database del database SQL di Azure |
<sql-database> |
AZURE_SQL_USERNAME |
Nome utente del database SQL di Azure |
<sql-username> |
AZURE_SQL_PASSWORD |
Password del database SQL di Azure |
<sql-password> |
Codice di esempio
Per connettersi al database SQL di Azure usando una stringa di connessione, vedere la procedura e il codice seguenti.
Installare le dipendenze.
dotnet add package Microsoft.Data.SqlClient
Ottenere la stringa di connessione del database SQL di Azure dalla variabile di ambiente aggiunta dal connettore di servizi.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Aggiungere le dipendenze seguenti nel file pom.xml:
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>10.2.0.jre11</version>
</dependency>
Ottenere la stringa di connessione del database SQL di Azure dalla variabile di ambiente aggiunta dal connettore di servizi.
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();
}
}
}
- Aggiungere la dipendenza nel file 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>
- Configurare l'applicazione Spring. Le configurazioni di connessione vengono aggiunte a Spring Apps dal connettore di servizi.
Installare le dipendenze.
python -m pip install pyodbc
Ottenere le configurazioni di connessione del database SQL di Azure dalla variabile di ambiente aggiunta dal connettore di servizi.
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)
Installare le dipendenze.
pip install django
pip install pyodbc
Nel file delle impostazioni, ottenere le configurazioni di connessione del database SQL di Azure dalla variabile di ambiente aggiunta dal connettore di servizi.
# 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',
},
},
}
Installare la dipendenza.
go install github.com/microsoft/go-mssqldb@latest
Ottenere la stringa di connessione del database SQL di Azure dalla variabile di ambiente aggiunta dal connettore di servizi.
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")
- Installare le dipendenze.
npm install mssql
- Ottenere le configurazioni di connessione del database SQL di Azure dalle variabili di ambiente aggiunte dal connettore di servizi.
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);
Scaricare i driver Microsoft per PHP per SQL Server. Per altre informazioni, vedere Introduzione ai driver Microsoft per PHP per SQL Server.
Ottenere le configurazioni di connessione del database SQL di Azure dalle variabili di ambiente aggiunte dal connettore di servizi.
<?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);
?>
Scaricare il driver Ruby per SQL Server. Per altre informazioni, vedere Configurare l'ambiente di sviluppo per lo sviluppo di Ruby.
Ottenere le configurazioni di connessione del database SQL di Azure dalle variabili di ambiente aggiunte dal connettore di servizi.
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
Per altre informazioni, vedere Home page per la programmazione client per Microsoft SQL Server.
Entità servizio
| Nome variabile di ambiente predefinito |
Descrizione |
Valore di esempio |
AZURE_SQL_CLIENTID |
L’ID client |
<client-ID> |
AZURE_SQL_CLIENTSECRET |
Segreto client |
<client-secret> |
AZURE_SQL_TENANTID |
ID del tenant. |
<tenant-ID> |
AZURE_SQL_CONNECTIONSTRING |
Stringa di connessione del database SQL di Azure |
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;User ID=<client-Id>;Password=<client-secret>;Authentication=ActiveDirectoryServicePrincipal |
| Nome variabile di ambiente predefinito |
Descrizione |
Valore di esempio |
AZURE_SQL_CONNECTIONSTRING |
Stringa di connessione del database SQL di Azure |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-database>;user=<client-Id>;password=<client-secret>;authentication=ActiveDirectoryServicePrincipal; |
| Nome variabile di ambiente predefinito |
Descrizione |
Valore di esempio |
spring.datasource.url |
URL dell'origine dati del database SQL di Azure |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryServicePrincipal; |
spring.datasource.username |
Nome utente dell'origine dati del database SQL di Azure |
<client-Id> |
spring.datasource.password |
Password dell'origine dati del database SQL di Azure |
<client-Secret> |
| Nome variabile di ambiente predefinito |
Descrizione |
Valore di esempio |
AZURE_SQL_SERVER |
Server di database SQL di Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta del database SQL di Azure |
1433 |
AZURE_SQL_DATABASE |
Database del database SQL di Azure |
<sql-database> |
AZURE_SQL_USER |
Utente del database SQL di Azure |
your Client Id |
AZURE_SQL_AUTHENTICATION |
Autenticazione SQL di Azure |
ActiveDirectoryServerPrincipal |
AZURE_SQL_PASSWORD |
Password del database SQL di Azure |
your Client Secret |
| Nome variabile di ambiente predefinito |
Descrizione |
Valore di esempio |
AZURE_SQL_SERVER |
Server di database SQL di Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta del database SQL di Azure |
1433 |
AZURE_SQL_DATABASE |
Database del database SQL di Azure |
<sql-database> |
AZURE_SQL_AUTHENTICATIONTYPE |
Tipo di autenticazione del database SQL di Azure |
azure-active-directory-default |
AZURE_SQL_CLIENTID |
ID client del database SQL di Azure |
<your Client ID> |
AZURE_SQL_CLIENTSECRET |
Segreto client del database SQL di Azure |
<your Client Secret > |
AZURE_SQL_TENANTID |
ID tenant del database SQL di Azure |
<your Tenant ID> |
| Nome variabile di ambiente predefinito |
Descrizione |
Valore di esempio |
AZURE_SQL_HOST |
Server di database SQL di Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta del database SQL di Azure |
1433 |
AZURE_SQL_DATABASE |
Database del database SQL di Azure |
<sql-database> |
AZURE_SQL_AUTHENTICATION |
Tipo di autenticazione del database SQL di Azure |
azure-active-directory-default |
AZURE_SQL_USERNAME |
ID client del database SQL di Azure |
<your Client ID> |
AZURE_SQL_PASSWORD |
Segreto client del database SQL di Azure |
<your Client Secret > |
Codice di esempio
Per connettersi al database SQL di Azure usando un'entità servizio, vedere la procedura e il codice seguenti.
Installare le dipendenze.
dotnet add package Microsoft.Data.SqlClient
Ottenere la stringa di connessione del database SQL di Azure dalla variabile di ambiente aggiunta dal connettore di servizi.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Per altre informazioni, vedere Usare l’autenticazione con identità gestita di Azure Active Directory.
Aggiungere le dipendenze seguenti nel file 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>
Ottenere la stringa di connessione del database SQL di Azure dalla variabile di ambiente aggiunta dal connettore di servizi.
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();
}
}
}
Per altre informazioni, vedere Connettersi ai database di Azure dal servizio app senza segreti usando un'identità gestita.
Per un'applicazione Spring, se si crea una connessione con l'opzione --client-type springboot, il connettore di servizi imposta le proprietà spring.datasource.url con il formato valore jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; su Azure Spring Apps.
Aggiornare l'applicazione seguendo l'esercitazione Eseguire la migrazione di un'applicazione Java per usare connessioni senza password con il database SQL di Azure. Ricordarsi di rimuovere la proprietà di configurazione spring.datasource.password se è stata impostata in precedenza e aggiungere le dipendenze corrette.
Installare le dipendenze.
python -m pip install pyodbc
Ottenere le configurazioni di connessione del database SQL di Azure dalla variabile di ambiente aggiunta dal connettore di servizi. Quando si usa il codice seguente, rimuovere il commento dalla parte del frammento di codice per il tipo di autenticazione che si vuole usare. Se si usa App contenitore di Azure come servizio di calcolo o la stringa di connessione nel frammento di codice non funziona, vedere Eseguire la migrazione di un'applicazione Python per usare connessioni senza password con il database SQL di Azure, per connettersi al database SQL di Azure tramite un token di accesso.
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)
- Installare le dipendenze.
npm install mssql
- Ottenere le configurazioni di connessione del database SQL di Azure dalle variabili di ambiente aggiunte dal connettore di servizi. Quando si usa il codice seguente, rimuovere il commento dalla parte del frammento di codice per il tipo di autenticazione che si vuole usare.
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);
Per altre informazioni, vedere Home page per la programmazione client per Microsoft SQL Server.
Passaggi successivi
Per altre informazioni su Service Connector, seguire l'esercitazione riportata di seguito.