Neste artigo, abordamos os métodos de autenticação suportados e os clientes que pode usar para ligar as suas aplicações ao Base de Dados SQL do Azure usando o Service Connector. Para cada método suportado, fornecemos código de exemplo e descrevemos os nomes padrão das variáveis do ambiente, valores e configuração obtidos ao criar uma ligação de serviço.
Serviços de computação suportados
O Service Connector pode ser usado para ligar os seguintes serviços de computação à Base de Dados SQL do Azure:
- Serviço de Aplicações do Azure
- Funções do Azure
- Serviço Kubernetes do Azure (AKS)
- Azure Spring Apps
Tipos de autenticação suportados e clientes
A tabela seguinte mostra quais as combinações de métodos de autenticação e clientes suportadas para ligar o seu serviço de computação à Base de Dados SQL do Azure usando o Service Connector. Um Sim indica que a combinação é suportada, enquanto um Não indica que não é suportada.
| Tipo de cliente |
Identidade gerenciada atribuída pelo sistema |
Identidade gerenciada atribuída pelo usuário |
Segredo/cadeia de conexão |
Principal de Serviço |
| .NET |
Yes |
Yes |
Yes |
Yes |
| Go |
Não |
Não |
Yes |
Não |
| Java |
Yes |
Yes |
Yes |
Yes |
| Java - Spring Boot |
Yes |
Yes |
Yes |
Yes |
| Node.js |
Yes |
Yes |
Yes |
Yes |
| PHP |
Não |
Não |
Yes |
Não |
| Python |
Yes |
Yes |
Yes |
Yes |
| Python - Django |
Não |
Não |
Yes |
Não |
| Ruby |
Não |
Não |
Yes |
Não |
| None |
Yes |
Yes |
Yes |
Yes |
Nota
A identidade gerenciada atribuída pelo sistema, a identidade gerenciada atribuída pelo usuário e a autenticação da entidade de serviço só são suportadas na CLI do Azure.
Nomes de variáveis de ambiente padrão ou propriedades de aplicativo e código de exemplo
Utilize os seguintes detalhes de ligação para ligar serviços de computação à Base de Dados SQL do Azure. Para cada exemplo, substitua os textos <sql-server>provisórios , <sql-database>, <sql-username>, e <sql-password> pelo seu próprio nome do servidor, nome da base de dados, ID de utilizador e palavra-passe. Para obter mais informações sobre convenções de nomenclatura, consulte o artigo interno do Service Connector.
Identidade gerenciada atribuída pelo sistema
| Nome da variável de ambiente padrão |
Descrição |
Valor da amostra |
AZURE_SQL_CONNECTIONSTRING |
String de conexão do Base de Dados SQL do Azure |
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;Authentication=ActiveDirectoryManagedIdentity |
| Nome da variável de ambiente padrão |
Descrição |
Valor da amostra |
AZURE_SQL_CONNECTIONSTRING |
String de conexão do Base de Dados SQL do Azure |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-database>;authentication=ActiveDirectoryMSI; |
| Nome da variável de ambiente padrão |
Descrição |
Valor da amostra |
spring.datasource.url |
Base de Dados SQL do Azure fonte de dados URL |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; |
| Nome da variável de ambiente padrão |
Descrição |
Valor da amostra |
AZURE_SQL_SERVER |
Servidor do Banco de Dados SQL do Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta da Base de Dados SQL do Azure |
1433 |
AZURE_SQL_DATABASE |
Banco de Dados do Azure SQL |
<sql-database> |
AZURE_SQL_AUTHENTICATION |
Autenticação do SQL do Azure |
ActiveDirectoryMsi |
| Nome da variável de ambiente padrão |
Descrição |
Valor da amostra |
AZURE_SQL_SERVER |
Servidor do Banco de Dados SQL do Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta da Base de Dados SQL do Azure |
1433 |
AZURE_SQL_DATABASE |
Banco de Dados do Azure SQL |
<sql-database> |
AZURE_SQL_AUTHENTICATIONTYPE |
Tipo de autenticação da Base de Dados SQL do Azure |
azure-active-directory-default |
| Nome da variável de ambiente padrão |
Descrição |
Valor da amostra |
AZURE_SQL_HOST |
Servidor do Banco de Dados SQL do Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta da Base de Dados SQL do Azure |
1433 |
AZURE_SQL_DATABASE |
Banco de Dados do Azure SQL |
<sql-database> |
AZURE_SQL_AUTHENTICATION |
Tipo de autenticação da Base de Dados SQL do Azure |
azure-active-directory-default |
Código de exemplo
Para se ligar à Base de Dados SQL do Azure usando uma identidade gerida atribuída pelo sistema, consulte os seguintes passos e código de exemplo.
Instale dependências.
dotnet add package Microsoft.Data.SqlClient
Obtenha a cadeia de conexão do Banco de Dados SQL do Azure da variável de ambiente adicionada pelo Service Connector.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Para obter mais informações, consulte Usando a autenticação de identidade gerenciada do Ative Directory.
Adicione as seguintes dependências no arquivo 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>
Obtenha a cadeia de conexão do Banco de Dados SQL do Azure da variável de ambiente adicionada pelo 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 obter mais informações, consulte Conectar-se a bancos de dados do Azure a partir do Serviço de Aplicativo sem segredos usando uma identidade gerenciada.
Para uma aplicação Spring, se criar uma conexão com a opção --client-type springboot, o Service Connector define as propriedades spring.datasource.url com o formato de valor jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; para o Azure Spring Apps.
Atualize seu aplicativo seguindo o tutorial Migrar um aplicativo Java para usar conexões sem senha com o Banco de Dados SQL do Azure. Lembre-se de remover a spring.datasource.password propriedade de configuração se ela tiver sido definida antes e adicionar as dependências corretas.
Instale dependências.
python -m pip install mssql-python python-dotenv
Obtenha as configurações de conexão do Banco de Dados SQL do Azure da variável de ambiente adicionada pelo Service Connector. No código abaixo, descomenta a secção para o teu tipo de autenticação.
import os
from mssql_python import connect
server = os.getenv('AZURE_SQL_SERVER')
port = os.getenv('AZURE_SQL_PORT')
database = os.getenv('AZURE_SQL_DATABASE')
# Uncomment the following lines corresponding to the authentication type you want to use.
# For system-assigned managed identity.
# connection_string = f'Server={server},{port};Database={database};Authentication=ActiveDirectoryMSI;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
# For user-assigned managed identity.
# client_id = os.getenv('AZURE_SQL_USER')
# connection_string = f'Server={server},{port};Database={database};UID={client_id};Authentication=ActiveDirectoryMSI;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
# For service principal.
# user = os.getenv('AZURE_SQL_USER')
# password = os.getenv('AZURE_SQL_PASSWORD')
# connection_string = f'Server={server},{port};Database={database};UID={user};PWD={password};Authentication=ActiveDirectoryServicePrincipal;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
conn = connect(connection_string)
- Instale dependências.
npm install mssql
- Obtenha as configurações de conexão do Banco de Dados SQL do Azure das variáveis de ambiente adicionadas pelo Service Connector. No código abaixo, descomenta a secção para o teu tipo de autenticação.
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 obter mais informações, consulte Homepage para programação de cliente para o Microsoft SQL Server.
Identidade gerenciada atribuída pelo usuário
| Nome da variável de ambiente padrão |
Descrição |
Valor da amostra |
AZURE_SQL_CONNECTIONSTRING |
String de conexão do Base de Dados SQL do Azure |
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;User ID=<identity-client-ID>;Authentication=ActiveDirectoryManagedIdentity |
| Nome da variável de ambiente padrão |
Descrição |
Valor da amostra |
AZURE_SQL_CONNECTIONSTRING |
String de conexão do Base de Dados SQL do Azure |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-database>;msiClientId=<msiClientId>;authentication=ActiveDirectoryMSI; |
| Nome da variável de ambiente padrão |
Descrição |
Valor da amostra |
spring.datasource.url |
Base de Dados SQL do Azure fonte de dados URL |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;msiClientId=<msiClientId>;authentication=ActiveDirectoryMSI; |
| Nome da variável de ambiente padrão |
Descrição |
Valor da amostra |
AZURE_SQL_SERVER |
Servidor do Banco de Dados SQL do Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta da Base de Dados SQL do Azure |
1433 |
AZURE_SQL_DATABASE |
Banco de Dados do Azure SQL |
<sql-database> |
AZURE_SQL_USER |
Utilizador do Base de Dados SQL do Azure |
Object (principal) ID |
AZURE_SQL_AUTHENTICATION |
Autenticação do SQL do Azure |
ActiveDirectoryMsi |
| Nome da variável de ambiente padrão |
Descrição |
Valor da amostra |
AZURE_SQL_SERVER |
Servidor do Banco de Dados SQL do Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta da Base de Dados SQL do Azure |
1433 |
AZURE_SQL_DATABASE |
Banco de Dados do Azure SQL |
<sql-database> |
AZURE_SQL_AUTHENTICATIONTYPE |
Tipo de autenticação da Base de Dados SQL do Azure |
azure-active-directory-default |
AZURE_SQL_CLIENTID |
ID de cliente do Base de Dados SQL do Azure |
<identity-client-ID> |
| Nome da variável de ambiente padrão |
Descrição |
Valor da amostra |
AZURE_SQL_HOST |
Servidor do Banco de Dados SQL do Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta da Base de Dados SQL do Azure |
1433 |
AZURE_SQL_DATABASE |
Banco de Dados do Azure SQL |
<sql-database> |
AZURE_SQL_AUTHENTICATION |
Tipo de autenticação da Base de Dados SQL do Azure |
azure-active-directory-default |
AZURE_SQL_USERNAME |
ID de cliente do Base de Dados SQL do Azure |
<your Client ID> |
Código de exemplo
Para se ligar à Base de Dados SQL do Azure usando uma identidade gerida atribuída pelo utilizador, consulte os seguintes passos e código de exemplo.
Instale dependências.
dotnet add package Microsoft.Data.SqlClient
Obtenha a cadeia de conexão do Banco de Dados SQL do Azure da variável de ambiente adicionada pelo Service Connector.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Para obter mais informações, consulte Usando a autenticação de identidade gerenciada do Ative Directory.
Adicione as seguintes dependências no arquivo 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>
Obtenha a cadeia de conexão do Banco de Dados SQL do Azure da variável de ambiente adicionada pelo 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 obter mais informações, consulte Conectar-se a bancos de dados do Azure a partir do Serviço de Aplicativo sem segredos usando uma identidade gerenciada.
Para uma aplicação Spring, se criar uma conexão com a opção --client-type springboot, o Service Connector define as propriedades spring.datasource.url com o formato de valor jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; para o Azure Spring Apps.
Atualize seu aplicativo seguindo o tutorial Migrar um aplicativo Java para usar conexões sem senha com o Banco de Dados SQL do Azure. Lembre-se de remover a spring.datasource.password propriedade de configuração se ela tiver sido definida antes e adicionar as dependências corretas.
Instale dependências.
python -m pip install mssql-python python-dotenv
Obtenha as configurações de conexão do Banco de Dados SQL do Azure da variável de ambiente adicionada pelo Service Connector. No código abaixo, descomenta a secção para o teu tipo de autenticação.
import os
from mssql_python import connect
server = os.getenv('AZURE_SQL_SERVER')
port = os.getenv('AZURE_SQL_PORT')
database = os.getenv('AZURE_SQL_DATABASE')
# Uncomment the following lines corresponding to the authentication type you want to use.
# For system-assigned managed identity.
# connection_string = f'Server={server},{port};Database={database};Authentication=ActiveDirectoryMSI;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
# For user-assigned managed identity.
# client_id = os.getenv('AZURE_SQL_USER')
# connection_string = f'Server={server},{port};Database={database};UID={client_id};Authentication=ActiveDirectoryMSI;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
# For service principal.
# user = os.getenv('AZURE_SQL_USER')
# password = os.getenv('AZURE_SQL_PASSWORD')
# connection_string = f'Server={server},{port};Database={database};UID={user};PWD={password};Authentication=ActiveDirectoryServicePrincipal;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
conn = connect(connection_string)
- Instale dependências.
npm install mssql
- Obtenha as configurações de conexão do Banco de Dados SQL do Azure das variáveis de ambiente adicionadas pelo Service Connector. No código abaixo, descomenta a secção para o teu tipo de autenticação.
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 obter mais informações, consulte Homepage para programação de cliente para o Microsoft SQL Server.
Cadeia de ligação
Aviso
A Microsoft recomenda que você use o fluxo de autenticação mais seguro disponível. O fluxo de autenticação descrito neste procedimento requer um elevado grau de confiança na aplicação e acarreta riscos que não estão presentes noutros fluxos. Você só deve usar esse fluxo quando outros fluxos mais seguros, como identidades gerenciadas, não forem viáveis.
| Nome da variável de ambiente padrão |
Descrição |
Valor da amostra |
AZURE_SQL_CONNECTIONSTRING |
String de conexão do Base de Dados SQL do Azure |
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;Password=<sql-password> |
| Nome da variável de ambiente padrão |
Descrição |
Valor da amostra |
AZURE_SQL_CONNECTIONSTRING |
String de conexão do Base de Dados SQL do Azure |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-database>;user=<sql-username>;password=<sql-password>; |
| Nome da variável de ambiente padrão |
Descrição |
Valor da amostra |
spring.datasource.url |
Base de Dados SQL do Azure fonte de dados URL |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>; |
spring.datasource.username |
Nome de utilizador da fonte de dados do Base de Dados SQL do Azure |
<sql-user> |
spring.datasource.password |
Palavra-passe da fonte de dados do Base de Dados SQL do Azure |
<sql-password> |
| Nome da variável de ambiente padrão |
Descrição |
Valor da amostra |
AZURE_SQL_SERVER |
Servidor do Banco de Dados SQL do Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta da Base de Dados SQL do Azure |
1433 |
AZURE_SQL_DATABASE |
Banco de Dados do Azure SQL |
<sql-database> |
AZURE_SQL_USER |
Utilizador do Base de Dados SQL do Azure |
<sql-username> |
AZURE_SQL_PASSWORD |
Palavra-passe da Base de Dados SQL do Azure |
<sql-password> |
| Nome da variável de ambiente padrão |
Descrição |
Valor da amostra |
AZURE_SQL_HOST |
Base de Dados SQL do Azure servidor |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta da Base de Dados SQL do Azure |
1433 |
AZURE_SQL_NAME |
Base de Dados SQL do Azure Nome |
<sql-database> |
AZURE_SQL_USER |
Utilizador do Base de Dados SQL do Azure |
<sql-username> |
AZURE_SQL_PASSWORD |
Palavra-passe da Base de Dados SQL do Azure |
<sql-password> |
| Nome da variável de ambiente padrão |
Descrição |
Valor da amostra |
AZURE_SQL_CONNECTIONSTRING |
String de conexão do Base de Dados SQL do Azure |
server=<sql-server>.database.windows.net;port=1433;database=<sql-database>;user id=<sql-username>;password=<sql-password>; |
| Nome da variável de ambiente padrão |
Descrição |
Valor da amostra |
AZURE_SQL_SERVER |
Servidor do Banco de Dados SQL do Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta da Base de Dados SQL do Azure |
1433 |
AZURE_SQL_DATABASE |
Banco de Dados do Azure SQL |
<sql-database> |
AZURE_SQL_USERNAME |
Base de Dados SQL do Azure nome de utilizador |
<sql-username> |
AZURE_SQL_PASSWORD |
Palavra-passe da Base de Dados SQL do Azure |
<sql-password> |
| Nome da variável de ambiente padrão |
Descrição |
Valor da amostra |
AZURE_SQL_SERVERNAME |
Base de Dados SQL do Azure nome do servidor |
<sql-server>.database.windows.net,1433 |
AZURE_SQL_DATABASE |
Banco de Dados do Azure SQL |
<sql-database> |
AZURE_SQL_UID |
Base de Dados SQL do Azure unique identifier (UID) |
<sql-username> |
AZURE_SQL_PASSWORD |
Palavra-passe da Base de Dados SQL do Azure |
<sql-password> |
| Nome da variável de ambiente padrão |
Descrição |
Valor da amostra |
AZURE_SQL_HOST |
Base de Dados SQL do Azure servidor |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta da Base de Dados SQL do Azure |
1433 |
AZURE_SQL_DATABASE |
Banco de Dados do Azure SQL |
<sql-database> |
AZURE_SQL_USERNAME |
Base de Dados SQL do Azure nome de utilizador |
<sql-username> |
AZURE_SQL_PASSWORD |
Palavra-passe da Base de Dados SQL do Azure |
<sql-password> |
| Nome da variável de ambiente padrão |
Descrição |
Valor da amostra |
AZURE_SQL_HOST |
Base de Dados SQL do Azure servidor |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta da Base de Dados SQL do Azure |
1433 |
AZURE_SQL_DATABASE |
Banco de Dados do Azure SQL |
<sql-database> |
AZURE_SQL_USERNAME |
Base de Dados SQL do Azure nome de utilizador |
<sql-username> |
AZURE_SQL_PASSWORD |
Palavra-passe da Base de Dados SQL do Azure |
<sql-password> |
Código de exemplo
Para se ligar ao Base de Dados SQL do Azure usando uma cadeia de ligação, consulte os seguintes passos e código de exemplo.
Instale dependências.
dotnet add package Microsoft.Data.SqlClient
Obtenha a cadeia de conexão do Banco de Dados SQL do Azure da variável de ambiente adicionada pelo Service Connector.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Adicione as seguintes dependências no arquivo pom.xml :
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>10.2.0.jre11</version>
</dependency>
Obtenha a cadeia de conexão do Banco de Dados SQL do Azure da variável de ambiente adicionada pelo 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();
}
}
}
- Adicione dependência no seu ficheiro de '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>
- Configura a aplicação Spring. As configurações de ligação são adicionadas às Aplicações Spring pelo Service Connector.
Instale dependências.
python -m pip install mssql-python python-dotenv
Obtenha as configurações de conexão do Banco de Dados SQL do Azure da variável de ambiente adicionada pelo Service Connector.
import os
from mssql_python import connect
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')
connection_string = f'Server={server},{port};Database={database};UID={user};PWD={password};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
conn = connect(connection_string)
Instale dependências.
pip install django
pip install mssql-django pyodbc
No ficheiro de definição, obtenha as configurações de ligação Base de Dados SQL do Azure a partir da variável de ambiente adicionada pelo Service Connector.
# 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': 'mssql',
'NAME': database,
'USER': user,
'PASSWORD': password,
'HOST': server,
'PORT': port,
'OPTIONS': {
'driver': 'ODBC Driver 18 for SQL Server',
},
},
}
Instalar dependência.
go install github.com/microsoft/go-mssqldb@latest
Obtenha a cadeia de conexão do Banco de Dados SQL do Azure da variável de ambiente adicionada pelo 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 dependências.
npm install mssql
- Obtenha as configurações de conexão do Banco de Dados SQL do Azure das variáveis de ambiente adicionadas pelo 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);
Descarregue os drivers Microsoft para PHP para SQL Server. Para mais informações, consulte Começar com os Microsoft Drivers para PHP para SQL Server.
Obtenha as configurações de conexão do Banco de Dados SQL do Azure das variáveis de ambiente adicionadas pelo Service Connector.
<?php
$serverName = 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);
?>
Descarregue Ruby Driver para SQL Server. Para mais informações, consulte Configurar ambiente de desenvolvimento para desenvolvimento Ruby.
Obtenha as configurações de conexão do Banco de Dados SQL do Azure das variáveis de ambiente adicionadas pelo 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 obter mais informações, consulte Homepage para programação de cliente para o Microsoft SQL Server.
Principal de Serviço
| Nome da variável de ambiente padrão |
Descrição |
Valor de Exemplo |
AZURE_SQL_CLIENTID |
O seu ID de cliente |
<client-ID> |
AZURE_SQL_CLIENTSECRET |
O segredo do seu cliente |
<client-secret> |
AZURE_SQL_TENANTID |
O seu ID de inquilino |
<tenant-ID> |
AZURE_SQL_CONNECTIONSTRING |
String de conexão do Base de Dados SQL do Azure |
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;User ID=<client-Id>;Password=<client-secret>;Authentication=ActiveDirectoryServicePrincipal |
| Nome da variável de ambiente padrão |
Descrição |
Valor da amostra |
AZURE_SQL_CONNECTIONSTRING |
String de conexão do Base de Dados SQL do Azure |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-database>;user=<client-Id>;password=<client-secret>;authentication=ActiveDirectoryServicePrincipal; |
| Nome da variável de ambiente padrão |
Descrição |
Valor da amostra |
spring.datasource.url |
Base de Dados SQL do Azure fonte de dados URL |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryServicePrincipal; |
spring.datasource.username |
Nome de utilizador da fonte de dados do Base de Dados SQL do Azure |
<client-Id> |
spring.datasource.password |
Palavra-passe da fonte de dados do Base de Dados SQL do Azure |
<client-Secret> |
| Nome da variável de ambiente padrão |
Descrição |
Valor da amostra |
AZURE_SQL_SERVER |
Servidor do Banco de Dados SQL do Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta da Base de Dados SQL do Azure |
1433 |
AZURE_SQL_DATABASE |
Banco de Dados do Azure SQL |
<sql-database> |
AZURE_SQL_USER |
Utilizador do Base de Dados SQL do Azure |
your Client Id |
AZURE_SQL_AUTHENTICATION |
Autenticação do SQL do Azure |
ActiveDirectoryServerPrincipal |
AZURE_SQL_PASSWORD |
Palavra-passe da Base de Dados SQL do Azure |
your Client Secret |
| Nome da variável de ambiente padrão |
Descrição |
Valor da amostra |
AZURE_SQL_SERVER |
Servidor do Banco de Dados SQL do Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta da Base de Dados SQL do Azure |
1433 |
AZURE_SQL_DATABASE |
Banco de Dados do Azure SQL |
<sql-database> |
AZURE_SQL_AUTHENTICATIONTYPE |
Tipo de autenticação da Base de Dados SQL do Azure |
azure-active-directory-default |
AZURE_SQL_CLIENTID |
ID de cliente do Base de Dados SQL do Azure |
<your Client ID> |
AZURE_SQL_CLIENTSECRET |
Segredo do cliente do Base de Dados SQL do Azure |
<your Client Secret > |
AZURE_SQL_TENANTID |
Base de Dados SQL do Azure ID do Locatário |
<your Tenant ID> |
| Nome da variável de ambiente padrão |
Descrição |
Valor da amostra |
AZURE_SQL_HOST |
Servidor do Banco de Dados SQL do Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta da Base de Dados SQL do Azure |
1433 |
AZURE_SQL_DATABASE |
Banco de Dados do Azure SQL |
<sql-database> |
AZURE_SQL_AUTHENTICATION |
Tipo de autenticação da Base de Dados SQL do Azure |
azure-active-directory-default |
AZURE_SQL_USERNAME |
ID de cliente do Base de Dados SQL do Azure |
<your Client ID> |
AZURE_SQL_PASSWORD |
Segredo do cliente do Base de Dados SQL do Azure |
<your Client Secret > |
Código de exemplo
Para se ligar ao Base de Dados SQL do Azure usando um princípio de serviço, consulte os seguintes passos e código de exemplo.
Instale dependências.
dotnet add package Microsoft.Data.SqlClient
Obtenha a cadeia de conexão do Banco de Dados SQL do Azure da variável de ambiente adicionada pelo Service Connector.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Para obter mais informações, consulte Usando a autenticação de identidade gerenciada do Ative Directory.
Adicione as seguintes dependências no arquivo 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>
Obtenha a cadeia de conexão do Banco de Dados SQL do Azure da variável de ambiente adicionada pelo 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 obter mais informações, consulte Conectar-se a bancos de dados do Azure a partir do Serviço de Aplicativo sem segredos usando uma identidade gerenciada.
Para uma aplicação Spring, se criar uma conexão com a opção --client-type springboot, o Service Connector define as propriedades spring.datasource.url com o formato de valor jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; para o Azure Spring Apps.
Atualize seu aplicativo seguindo o tutorial Migrar um aplicativo Java para usar conexões sem senha com o Banco de Dados SQL do Azure. Lembre-se de remover a spring.datasource.password propriedade de configuração se ela tiver sido definida antes e adicionar as dependências corretas.
Instale dependências.
python -m pip install mssql-python python-dotenv
Obtenha as configurações de conexão do Banco de Dados SQL do Azure da variável de ambiente adicionada pelo Service Connector. No código abaixo, descomenta a secção para o teu tipo de autenticação.
import os
from mssql_python import connect
server = os.getenv('AZURE_SQL_SERVER')
port = os.getenv('AZURE_SQL_PORT')
database = os.getenv('AZURE_SQL_DATABASE')
# Uncomment the following lines corresponding to the authentication type you want to use.
# For system-assigned managed identity.
# connection_string = f'Server={server},{port};Database={database};Authentication=ActiveDirectoryMSI;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
# For user-assigned managed identity.
# client_id = os.getenv('AZURE_SQL_USER')
# connection_string = f'Server={server},{port};Database={database};UID={client_id};Authentication=ActiveDirectoryMSI;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
# For service principal.
# user = os.getenv('AZURE_SQL_USER')
# password = os.getenv('AZURE_SQL_PASSWORD')
# connection_string = f'Server={server},{port};Database={database};UID={user};PWD={password};Authentication=ActiveDirectoryServicePrincipal;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
conn = connect(connection_string)
- Instale dependências.
npm install mssql
- Obtenha as configurações de conexão do Banco de Dados SQL do Azure das variáveis de ambiente adicionadas pelo Service Connector. No código abaixo, descomenta a secção para o teu tipo de autenticação.
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 obter mais informações, consulte Homepage para programação de cliente para o Microsoft SQL Server.
Próximos passos
Para saber mais sobre o Service Connector, consulte o tutorial seguinte.