En este artículo se tratan los métodos de autenticación, los clientes y el código de ejemplo admitidos que puede usar para conectar las aplicaciones a Azure SQL Database mediante Service Connector. En este artículo, también encontrará nombres de variables de entorno, valores y configuración predeterminados obtenidos al crear conexiones de servicio.
Servicios de proceso admitidos
El conector de servicio se puede utilizar para conectar los siguientes servicios de proceso a Azure SQL Database:
- Azure App Service
- Azure Container Apps
- Azure Functions
- Azure Kubernetes Service (AKS)
- Azure Spring Apps
Tipos de autenticación y clientes admitidos
En la tabla siguiente se muestran las combinaciones de métodos de autenticación y clientes que se admiten para conectar el servicio de proceso a Azure SQL Database mediante el conector de servicio. Un valor "Sí" indica que se admite la combinación, mientras que "No" indica que no se admite.
| Client_Type |
Identidad administrada asignada por el sistema |
Identidad administrada asignada por el usuario |
Secreto/cadena de conexión |
Entidad de servicio |
| .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 |
| None |
Sí |
Sí |
Sí |
Sí |
Nota
La identidad administrada asignada por el sistema, la identidad administrada asignada por el usuario y la autenticación de entidad de servicio solo se admiten en la CLI de Azure.
Nombres de variables de entorno predeterminados o propiedades de aplicación y código de ejemplo
Use los detalles de conexión siguientes para conectar servicios de proceso a Azure SQL Database. Para cada ejemplo siguiente, reemplace los textos de los marcadores de posición <sql-server>, <sql-database>, <sql-username> y <sql-password> por su propio nombre de servidor, el nombre de la base de datos, el identificador de usuario y la contraseña. Para más información sobre las convenciones de nomenclatura, consulte el artículo sobre los elementos internos del conector de servicio.
Identidad administrada asignada por el sistema
| Nombre de la variable de entorno predeterminado |
Descripción |
Valor de ejemplo |
AZURE_SQL_CONNECTIONSTRING |
Cadena de conexión de Azure SQL Database |
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;Authentication=ActiveDirectoryManagedIdentity |
| Nombre de la variable de entorno predeterminado |
Descripción |
Valor de ejemplo |
AZURE_SQL_CONNECTIONSTRING |
Cadena de conexión de Azure SQL Database |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-database>;authentication=ActiveDirectoryMSI; |
| Nombre de la variable de entorno predeterminado |
Descripción |
Valor de ejemplo |
spring.datasource.url |
Dirección URL del origen de datos de Azure SQL Database |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; |
| Nombre de la variable de entorno predeterminado |
Descripción |
Valor de ejemplo |
AZURE_SQL_SERVER |
Servidor de Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Puerto de Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
Base de datos de Azure SQL Database |
<sql-database> |
AZURE_SQL_AUTHENTICATION |
Autenticación de Azure SQL |
ActiveDirectoryMsi |
| Nombre de la variable de entorno predeterminado |
Descripción |
Valor de ejemplo |
AZURE_SQL_SERVER |
Servidor de Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Puerto de Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
Base de datos de Azure SQL Database |
<sql-database> |
AZURE_SQL_AUTHENTICATIONTYPE |
Tipo de autenticación de Azure SQL Database |
azure-active-directory-default |
| Nombre de la variable de entorno predeterminado |
Descripción |
Valor de ejemplo |
AZURE_SQL_HOST |
Servidor de Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Puerto de Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
Base de datos de Azure SQL Database |
<sql-database> |
AZURE_SQL_AUTHENTICATION |
Tipo de autenticación de Azure SQL Database |
azure-active-directory-default |
Código de ejemplo
Consulte los pasos y el código siguientes para conectarse a Azure SQL Database mediante una identidad administrada asignada por el sistema.
Instale las dependencias.
dotnet add package Microsoft.Data.SqlClient
Obtenga la cadena de conexión de Azure SQL Database de la variable de entorno agregada por Service Connector.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Para obtener más información, consulte Uso de la autenticación de identidad administrada de Active Directory.
Agregue las siguientes dependencias al archivo 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>
Obtenga la cadena de conexión de Azure SQL Database de la variable de entorno agregada por 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();
}
}
}
Para más información, consulte Conexión a bases de datos de Azure desde App Service sin secretos mediante una identidad administrada.
Para una aplicación de Spring, si crea una conexión con la opción --client-type springboot, Service Connector establece las propiedades spring.datasource.url con formato de valor jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; a Azure Spring Apps.
Actualice la aplicación siguiendo el tutorial Migración de una aplicación Java para usar conexiones sin contraseña con Azure SQL Database. Recuerde quitar la propiedad de configuración spring.datasource.password si se estableció antes y agregar las dependencias correctas.
Instale las dependencias.
python -m pip install pyodbc
Obtenga las configuraciones de conexión de Azure SQL Database de la variable de entorno agregada por Service Connector. Al usar el código siguiente, quite la marca de comentario de la parte del fragmento de código para el tipo de autenticación que desea usar. Si usa Azure Container Apps como servicio de proceso o la cadena de conexión del fragmento de código no funciona, consulte Migración de una aplicación de Python para usar conexiones sin contraseña con Azure SQL Database para conectarse a Azure SQL Database mediante un token de acceso.
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)
- Instale las dependencias.
npm install mssql
- Obtenga las configuraciones de conexión de Azure SQL Database de las variables de entorno agregadas por Service Connector. Al usar el código siguiente, quite la marca de comentario de la parte del fragmento de código para el tipo de autenticación que desea usar.
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);
Para obtener más información, consulte Página principal de la programación de cliente en Microsoft SQL Server.
Identidad administrada asignada por el usuario
| Nombre de la variable de entorno predeterminado |
Descripción |
Valor de ejemplo |
AZURE_SQL_CONNECTIONSTRING |
Cadena de conexión de Azure SQL Database |
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;User ID=<identity-client-ID>;Authentication=ActiveDirectoryManagedIdentity |
| Nombre de la variable de entorno predeterminado |
Descripción |
Valor de ejemplo |
AZURE_SQL_CONNECTIONSTRING |
Cadena de conexión de Azure SQL Database |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-database>;msiClientId=<msiClientId>;authentication=ActiveDirectoryMSI; |
| Nombre de la variable de entorno predeterminado |
Descripción |
Valor de ejemplo |
spring.datasource.url |
Dirección URL del origen de datos de Azure SQL Database |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;msiClientId=<msiClientId>;authentication=ActiveDirectoryMSI; |
| Nombre de la variable de entorno predeterminado |
Descripción |
Valor de ejemplo |
AZURE_SQL_SERVER |
Servidor de Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Puerto de Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
Base de datos de Azure SQL Database |
<sql-database> |
AZURE_SQL_USER |
Usuario de Azure SQL Database |
Object (principal) ID |
AZURE_SQL_AUTHENTICATION |
Autenticación de Azure SQL |
ActiveDirectoryMsi |
| Nombre de la variable de entorno predeterminado |
Descripción |
Valor de ejemplo |
AZURE_SQL_SERVER |
Servidor de Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Puerto de Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
Base de datos de Azure SQL Database |
<sql-database> |
AZURE_SQL_AUTHENTICATIONTYPE |
Tipo de autenticación de Azure SQL Database |
azure-active-directory-default |
AZURE_SQL_CLIENTID |
Identificación de cliente de Azure SQL Database |
<identity-client-ID> |
| Nombre de la variable de entorno predeterminado |
Descripción |
Valor de ejemplo |
AZURE_SQL_HOST |
Servidor de Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Puerto de Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
Base de datos de Azure SQL Database |
<sql-database> |
AZURE_SQL_AUTHENTICATION |
Tipo de autenticación de Azure SQL Database |
azure-active-directory-default |
AZURE_SQL_USERNAME |
Identificación de cliente de Azure SQL Database |
<your Client ID> |
Código de ejemplo
Consulte los pasos y el código siguientes para conectarse a Azure SQL Database mediante una identidad administrada asignada por el usuario.
Instale las dependencias.
dotnet add package Microsoft.Data.SqlClient
Obtenga la cadena de conexión de Azure SQL Database de la variable de entorno agregada por Service Connector.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Para obtener más información, consulte Uso de la autenticación de identidad administrada de Active Directory.
Agregue las siguientes dependencias al archivo 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>
Obtenga la cadena de conexión de Azure SQL Database de la variable de entorno agregada por 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();
}
}
}
Para más información, consulte Conexión a bases de datos de Azure desde App Service sin secretos mediante una identidad administrada.
Para una aplicación de Spring, si crea una conexión con la opción --client-type springboot, Service Connector establece las propiedades spring.datasource.url con formato de valor jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; a Azure Spring Apps.
Actualice la aplicación siguiendo el tutorial Migración de una aplicación Java para usar conexiones sin contraseña con Azure SQL Database. Recuerde quitar la propiedad de configuración spring.datasource.password si se estableció antes y agregar las dependencias correctas.
Instale las dependencias.
python -m pip install pyodbc
Obtenga las configuraciones de conexión de Azure SQL Database de la variable de entorno agregada por Service Connector. Al usar el código siguiente, quite la marca de comentario de la parte del fragmento de código para el tipo de autenticación que desea usar. Si usa Azure Container Apps como servicio de proceso o la cadena de conexión del fragmento de código no funciona, consulte Migración de una aplicación de Python para usar conexiones sin contraseña con Azure SQL Database para conectarse a Azure SQL Database mediante un token de acceso.
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)
- Instale las dependencias.
npm install mssql
- Obtenga las configuraciones de conexión de Azure SQL Database de las variables de entorno agregadas por Service Connector. Al usar el código siguiente, quite la marca de comentario de la parte del fragmento de código para el tipo de autenticación que desea usar.
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);
Para obtener más información, consulte Página principal de la programación de cliente en Microsoft SQL Server.
Cadena de conexión
Advertencia
Microsoft recomienda usar el flujo de autenticación más seguro disponible. El flujo de autenticación que se describe en este procedimiento requiere un alto grado de confianza en la aplicación y conlleva riesgos que no están presentes en otros flujos. Solo debe usar este flujo cuando otros flujos más seguros, como las identidades administradas, no sean viables.
| Nombre de la variable de entorno predeterminado |
Descripción |
Valor de ejemplo |
AZURE_SQL_CONNECTIONSTRING |
Cadena de conexión de Azure SQL Database |
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;Password=<sql-password> |
| Nombre de la variable de entorno predeterminado |
Descripción |
Valor de ejemplo |
AZURE_SQL_CONNECTIONSTRING |
Cadena de conexión de Azure SQL Database |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-database>;user=<sql-username>;password=<sql-password>; |
| Nombre de la variable de entorno predeterminado |
Descripción |
Valor de ejemplo |
spring.datasource.url |
Dirección URL del origen de datos de Azure SQL Database |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>; |
spring.datasource.username |
Nombre de usuario del origen de datos de Azure SQL Database |
<sql-user> |
spring.datasource.password |
Contraseña del origen de datos de Azure SQL Database |
<sql-password> |
| Nombre de la variable de entorno predeterminado |
Descripción |
Valor de ejemplo |
AZURE_SQL_SERVER |
Servidor de Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Puerto de Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
Base de datos de Azure SQL Database |
<sql-database> |
AZURE_SQL_USER |
Usuario de Azure SQL Database |
<sql-username> |
AZURE_SQL_PASSWORD |
Contraseña de Azure SQL Database |
<sql-password> |
| Nombre de la variable de entorno predeterminado |
Descripción |
Valor de ejemplo |
AZURE_SQL_HOST |
Host de Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Puerto de Azure SQL Database |
1433 |
AZURE_SQL_NAME |
Nombre de Azure SQL Database |
<sql-database> |
AZURE_SQL_USER |
Usuario de Azure SQL Database |
<sql-username> |
AZURE_SQL_PASSWORD |
Contraseña de Azure SQL Database |
<sql-password> |
| Nombre de la variable de entorno predeterminado |
Descripción |
Valor de ejemplo |
AZURE_SQL_CONNECTIONSTRING |
Cadena de conexión de Azure SQL Database |
server=<sql-server>.database.windows.net;port=1433;database=<sql-database>;user id=<sql-username>;password=<sql-password>; |
| Nombre de la variable de entorno predeterminado |
Descripción |
Valor de ejemplo |
AZURE_SQL_SERVER |
Servidor de Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Puerto de Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
Base de datos de Azure SQL Database |
<sql-database> |
AZURE_SQL_USERNAME |
Nombre de usuario de Azure SQL Database |
<sql-username> |
AZURE_SQL_PASSWORD |
Contraseña de Azure SQL Database |
<sql-password> |
| Nombre de la variable de entorno predeterminado |
Descripción |
Valor de ejemplo |
AZURE_SQL_SERVERNAME |
Nombre de servidor de Azure SQL Database |
<sql-server>.database.windows.net,1433 |
AZURE_SQL_DATABASE |
Base de datos de Azure SQL Database |
<sql-database> |
AZURE_SQL_UID |
Identificador único de Azure SQL Database (UID) |
<sql-username> |
AZURE_SQL_PASSWORD |
Contraseña de Azure SQL Database |
<sql-password> |
| Nombre de la variable de entorno predeterminado |
Descripción |
Valor de ejemplo |
AZURE_SQL_HOST |
Host de Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Puerto de Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
Base de datos de Azure SQL Database |
<sql-database> |
AZURE_SQL_USERNAME |
Nombre de usuario de Azure SQL Database |
<sql-username> |
AZURE_SQL_PASSWORD |
Contraseña de Azure SQL Database |
<sql-password> |
| Nombre de la variable de entorno predeterminado |
Descripción |
Valor de ejemplo |
AZURE_SQL_HOST |
Host de Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Puerto de Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
Base de datos de Azure SQL Database |
<sql-database> |
AZURE_SQL_USERNAME |
Nombre de usuario de Azure SQL Database |
<sql-username> |
AZURE_SQL_PASSWORD |
Contraseña de Azure SQL Database |
<sql-password> |
Código de ejemplo
Consulte los pasos y el código siguientes para conectarse a Azure SQL Database mediante una cadena de conexión.
Instale las dependencias.
dotnet add package Microsoft.Data.SqlClient
Obtenga la cadena de conexión de Azure SQL Database de la variable de entorno agregada por Service Connector.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Agregue las siguientes dependencias al archivo pom.xml:
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>10.2.0.jre11</version>
</dependency>
Obtenga la cadena de conexión de Azure SQL Database de la variable de entorno agregada por 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) {
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();
}
}
}
- Agregue la dependencia en el archivo "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>
- Configure la aplicación Spring. Las configuraciones de conexión se agregan a Spring Apps mediante el conector de servicio.
Instale las dependencias.
python -m pip install pyodbc
Obtenga las configuraciones de conexión de Azure SQL Database de la variable de entorno agregada por Service Connector.
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)
Instale las dependencias.
pip install django
pip install pyodbc
En el archivo de configuración, obtenga las configuraciones de conexión de Azure SQL Database de la variable de entorno agregada por el conector de servicio.
# in your setting file, eg. settings.py
server = os.getenv('AZURE_SQL_HOST')
port = os.getenv('AZURE_SQL_PORT')
database = os.getenv('AZURE_SQL_NAME')
user = os.getenv('AZURE_SQL_USER')
password = os.getenv('AZURE_SQL_PASSWORD')
DATABASES = {
'default': {
'ENGINE': 'sql_server.pyodbc',
'NAME': database,
'USER': user,
'PASSWORD': password,
'HOST': server,
'PORT': port,
'OPTIONS': {
'driver': 'ODBC Driver 13 for SQL Server',
},
},
}
Instalación de la dependencia.
go install github.com/microsoft/go-mssqldb@latest
Obtenga la cadena de conexión de Azure SQL Database de la variable de entorno agregada por Service Connector.
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")
- Instale las dependencias.
npm install mssql
- Obtenga las configuraciones de conexión de Azure SQL Database de las variables de entorno agregadas por Service Connector.
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);
Descargue los controladores de Microsoft para PHP para SQL Server. Para más información, consulte Introducción a los controladores de Microsoft para PHP para SQL Server.
Obtenga las configuraciones de conexión de Azure SQL Database de las variables de entorno agregadas por Service Connector.
<?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);
?>
Descargue el controlador de Ruby para SQL Server. Para más información, consulte Configuración del entorno de desarrollo para el desarrollo Ruby.
Obtenga las configuraciones de conexión de Azure SQL Database de las variables de entorno agregadas por Service Connector.
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
Para obtener más información, consulte Página principal de la programación de cliente en Microsoft SQL Server.
Entidad de servicio
| Nombre de la variable de entorno predeterminado |
Descripción |
Valor de ejemplo |
AZURE_SQL_CLIENTID |
Id. de cliente |
<client-ID> |
AZURE_SQL_CLIENTSECRET |
Secreto de cliente |
<client-secret> |
AZURE_SQL_TENANTID |
El identificador de inquilino |
<tenant-ID> |
AZURE_SQL_CONNECTIONSTRING |
Cadena de conexión de Azure SQL Database |
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;User ID=<client-Id>;Password=<client-secret>;Authentication=ActiveDirectoryServicePrincipal |
| Nombre de la variable de entorno predeterminado |
Descripción |
Valor de ejemplo |
AZURE_SQL_CONNECTIONSTRING |
Cadena de conexión de Azure SQL Database |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-database>;user=<client-Id>;password=<client-secret>;authentication=ActiveDirectoryServicePrincipal; |
| Nombre de la variable de entorno predeterminado |
Descripción |
Valor de ejemplo |
spring.datasource.url |
Dirección URL del origen de datos de Azure SQL Database |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryServicePrincipal; |
spring.datasource.username |
Nombre de usuario del origen de datos de Azure SQL Database |
<client-Id> |
spring.datasource.password |
Contraseña del origen de datos de Azure SQL Database |
<client-Secret> |
| Nombre de la variable de entorno predeterminado |
Descripción |
Valor de ejemplo |
AZURE_SQL_SERVER |
Servidor de Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Puerto de Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
Base de datos de Azure SQL Database |
<sql-database> |
AZURE_SQL_USER |
Usuario de Azure SQL Database |
your Client Id |
AZURE_SQL_AUTHENTICATION |
Autenticación de Azure SQL |
ActiveDirectoryServerPrincipal |
AZURE_SQL_PASSWORD |
Contraseña de Azure SQL Database |
your Client Secret |
| Nombre de la variable de entorno predeterminado |
Descripción |
Valor de ejemplo |
AZURE_SQL_SERVER |
Servidor de Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Puerto de Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
Base de datos de Azure SQL Database |
<sql-database> |
AZURE_SQL_AUTHENTICATIONTYPE |
Tipo de autenticación de Azure SQL Database |
azure-active-directory-default |
AZURE_SQL_CLIENTID |
Identificación de cliente de Azure SQL Database |
<your Client ID> |
AZURE_SQL_CLIENTSECRET |
Secreto de cliente de Azure SQL Database |
<your Client Secret > |
AZURE_SQL_TENANTID |
Identificador de inquilino de Azure SQL Database |
<your Tenant ID> |
| Nombre de la variable de entorno predeterminado |
Descripción |
Valor de ejemplo |
AZURE_SQL_HOST |
Servidor de Azure SQL Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Puerto de Azure SQL Database |
1433 |
AZURE_SQL_DATABASE |
Base de datos de Azure SQL Database |
<sql-database> |
AZURE_SQL_AUTHENTICATION |
Tipo de autenticación de Azure SQL Database |
azure-active-directory-default |
AZURE_SQL_USERNAME |
Identificación de cliente de Azure SQL Database |
<your Client ID> |
AZURE_SQL_PASSWORD |
Secreto de cliente de Azure SQL Database |
<your Client Secret > |
Código de ejemplo
Consulte los pasos y el código siguientes para conectarse a Azure SQL Database mediante una entidad de servicio.
Instale las dependencias.
dotnet add package Microsoft.Data.SqlClient
Obtenga la cadena de conexión de Azure SQL Database de la variable de entorno agregada por Service Connector.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Para obtener más información, consulte Uso de la autenticación de identidad administrada de Active Directory.
Agregue las siguientes dependencias al archivo 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>
Obtenga la cadena de conexión de Azure SQL Database de la variable de entorno agregada por 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();
}
}
}
Para más información, consulte Conexión a bases de datos de Azure desde App Service sin secretos mediante una identidad administrada.
Para una aplicación de Spring, si crea una conexión con la opción --client-type springboot, Service Connector establece las propiedades spring.datasource.url con formato de valor jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; a Azure Spring Apps.
Actualice la aplicación siguiendo el tutorial Migración de una aplicación Java para usar conexiones sin contraseña con Azure SQL Database. Recuerde quitar la propiedad de configuración spring.datasource.password si se estableció antes y agregar las dependencias correctas.
Instale las dependencias.
python -m pip install pyodbc
Obtenga las configuraciones de conexión de Azure SQL Database de la variable de entorno agregada por Service Connector. Al usar el código siguiente, quite la marca de comentario de la parte del fragmento de código para el tipo de autenticación que desea usar. Si usa Azure Container Apps como servicio de proceso o la cadena de conexión del fragmento de código no funciona, consulte Migración de una aplicación de Python para usar conexiones sin contraseña con Azure SQL Database para conectarse a Azure SQL Database mediante un token de acceso.
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)
- Instale las dependencias.
npm install mssql
- Obtenga las configuraciones de conexión de Azure SQL Database de las variables de entorno agregadas por Service Connector. Al usar el código siguiente, quite la marca de comentario de la parte del fragmento de código para el tipo de autenticación que desea usar.
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);
Para obtener más información, consulte Página principal de la programación de cliente en Microsoft SQL Server.
Pasos siguientes
Para más información sobre el conector de servicio, siga el tutorial que se muestra a continuación.