Este artigo aborda métodos de autenticação com suporte, clientes e código de exemplo que você pode usar para conectar seus aplicativos ao Banco de Dados SQL do Azure usando o Conector de Serviço. Neste artigo, você também encontrará nomes, valores e configuração de variáveis de ambiente padrão obtidos ao criar conexões de serviço.
Serviço de computação com suporte
O Conector de Serviço pode ser usado para conectar os seguintes serviços de computação ao Banco de Dados SQL do Azure:
- Serviço de Aplicativo do Azure
- Aplicativos de Contêiner do Azure
- Azure Functions
- Serviço de Kubernetes do Azure (AKS)
- Aplicativos Spring do Azure
Tipos de autenticação e de clientes com suporte
A tabela abaixo mostra quais combinações de clientes e métodos de autenticação têm suporte para conectar o serviço de computação ao Banco de Dados SQL do Azure usando o conector de serviço. “Sim” indica que a combinação tem suporte e “Não” indica que ela não tem.
| Tipo de cliente |
Identidade gerenciada atribuída pelo sistema |
Identidade gerenciada atribuída pelo usuário |
Cadeia de conexão/segredo |
Entidade de serviço |
| .NET |
Sim |
Sim |
Sim |
Sim |
| Go |
Não |
Não |
Sim |
Não |
| Java |
Sim |
Sim |
Sim |
Sim |
| Java – Spring Boot |
Sim |
Sim |
Sim |
Sim |
| Node.js |
Sim |
Sim |
Sim |
Sim |
| PHP |
Não |
Não |
Sim |
Não |
| Python |
Sim |
Sim |
Sim |
Sim |
| Python – Django |
Não |
Não |
Sim |
Não |
| Ruby |
Não |
Não |
Sim |
Não |
| Nenhum |
Sim |
Sim |
Sim |
Sim |
Observação
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ó têm suporte na CLI do Azure.
Nomes de variáveis de ambiente padrão ou propriedades de aplicativo e código de exemplo
Use os detalhes de conexão abaixo para conectar serviços de computação ao Banco de Dados SQL do Azure. Para cada exemplo abaixo, substitua os textos de espaços reservados <sql-server>, <sql-database>, <sql-username> e <sql-password> pelo seguinte: nome do servidor, nome do banco de dados, ID de usuário e senha. Para saber mais sobre as convenções de nomenclatura, confira o artigo Detalhes internos do Conector de Serviço.
Identidade gerenciada atribuída pelo sistema
| Nome da variável de ambiente padrão |
Descrição |
Valor de exemplo |
AZURE_SQL_CONNECTIONSTRING |
Cadeia de conexão do Banco 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 de exemplo |
AZURE_SQL_CONNECTIONSTRING |
Cadeia de conexão do Banco 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 de exemplo |
spring.datasource.url |
URL da fonte de dados do Banco de Dados SQL do Azure |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; |
| Nome da variável de ambiente padrão |
Descrição |
Valor de exemplo |
AZURE_SQL_SERVER |
Servidor do Banco de Dados SQL do Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta do Banco de Dados SQL do Azure |
1433 |
AZURE_SQL_DATABASE |
Banco de dados do Banco de Dados SQL do Azure |
<sql-database> |
AZURE_SQL_AUTHENTICATION |
Autenticação do SQL do Azure |
ActiveDirectoryMsi |
| Nome da variável de ambiente padrão |
Descrição |
Valor de exemplo |
AZURE_SQL_SERVER |
Servidor do Banco de Dados SQL do Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta do Banco de Dados SQL do Azure |
1433 |
AZURE_SQL_DATABASE |
Banco de dados do Banco de Dados SQL do Azure |
<sql-database> |
AZURE_SQL_AUTHENTICATIONTYPE |
Tipo de autenticação do Banco de Dados SQL do Azure |
azure-active-directory-default |
| Nome da variável de ambiente padrão |
Descrição |
Valor de exemplo |
AZURE_SQL_HOST |
Servidor do Banco de Dados SQL do Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta do Banco de Dados SQL do Azure |
1433 |
AZURE_SQL_DATABASE |
Banco de dados do Banco de Dados SQL do Azure |
<sql-database> |
AZURE_SQL_AUTHENTICATION |
Tipo de autenticação do Banco de Dados SQL do Azure |
azure-active-directory-default |
Código de exemplo
Confira as etapas e o código abaixo para se conectar ao Banco de Dados SQL do Azure usando uma identidade gerenciada atribuída pelo sistema.
Instale as 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 Conector do Serviço.
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 Active Directory.
Adicione as seguintes dependências no seu 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 Conector do Serviço.
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, confira Conectar-se aos bancos de dados do Azure a partir do Serviço de Aplicativo sem segredos usando uma identidade gerenciada.
Para um aplicativo Spring, se você criar uma conexão com a opção --client-type springboot, o Conector de Serviço definirá as propriedades spring.datasource.url com o formato de valor jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; nos Aplicativos Spring do Azure.
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 propriedade de configuração spring.datasource.password se ela tiver sido configurada antes e adicionar as dependências corretas.
Instale as dependências.
python -m pip install pyodbc
Obtenha as configurações de conexão do Banco de Dados SQL do Azure da variável de ambiente adicionada pelo Conector de Serviço. Ao usar o código abaixo, remova a marca de comentário da parte do trecho de código referente ao tipo de autenticação que você deseja usar. Se você usar os Aplicativos de Contêiner do Azure como serviço de computação ou a cadeia de conexão no trecho de código não funcionar, confira Migrar um aplicativo Python para usar conexões sem senha com o Banco de Dados SQL do Azure para se conectar ao Banco de Dados SQL do Azure usando um token de acesso.
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 as 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 Conector de Serviço. Ao usar o código abaixo, remova a marca de comentário da parte do trecho de código referente ao tipo de autenticação que você deseja 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 obter mais informações, confira Página inicial para a programação de cliente para interagir com o Microsoft SQL Server.
Identidade gerenciada atribuída pelo usuário
| Nome da variável de ambiente padrão |
Descrição |
Valor de exemplo |
AZURE_SQL_CONNECTIONSTRING |
Cadeia de conexão do Banco 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 de exemplo |
AZURE_SQL_CONNECTIONSTRING |
Cadeia de conexão do Banco 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 de exemplo |
spring.datasource.url |
URL da fonte de dados do Banco de Dados SQL do Azure |
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 de exemplo |
AZURE_SQL_SERVER |
Servidor do Banco de Dados SQL do Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta do Banco de Dados SQL do Azure |
1433 |
AZURE_SQL_DATABASE |
Banco de dados do Banco de Dados SQL do Azure |
<sql-database> |
AZURE_SQL_USER |
Usuário do Banco 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 de exemplo |
AZURE_SQL_SERVER |
Servidor do Banco de Dados SQL do Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta do Banco de Dados SQL do Azure |
1433 |
AZURE_SQL_DATABASE |
Banco de dados do Banco de Dados SQL do Azure |
<sql-database> |
AZURE_SQL_AUTHENTICATIONTYPE |
Tipo de autenticação do Banco de Dados SQL do Azure |
azure-active-directory-default |
AZURE_SQL_CLIENTID |
ID do cliente do Banco de Dados SQL do Azure |
<identity-client-ID> |
| Nome da variável de ambiente padrão |
Descrição |
Valor de exemplo |
AZURE_SQL_HOST |
Servidor do Banco de Dados SQL do Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta do Banco de Dados SQL do Azure |
1433 |
AZURE_SQL_DATABASE |
Banco de dados do Banco de Dados SQL do Azure |
<sql-database> |
AZURE_SQL_AUTHENTICATION |
Tipo de autenticação do Banco de Dados SQL do Azure |
azure-active-directory-default |
AZURE_SQL_USERNAME |
ID do cliente do Banco de Dados SQL do Azure |
<your Client ID> |
Código de exemplo
Confira as etapas e o código abaixo para se conectar ao Banco de Dados SQL do Azure usando uma identidade gerenciada atribuída pelo usuário.
Instale as 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 Conector do Serviço.
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 Active Directory.
Adicione as seguintes dependências no seu 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 Conector do Serviço.
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, confira Conectar-se aos bancos de dados do Azure a partir do Serviço de Aplicativo sem segredos usando uma identidade gerenciada.
Para um aplicativo Spring, se você criar uma conexão com a opção --client-type springboot, o Conector de Serviço definirá as propriedades spring.datasource.url com o formato de valor jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; nos Aplicativos Spring do Azure.
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 propriedade de configuração spring.datasource.password se ela tiver sido configurada antes e adicionar as dependências corretas.
Instale as dependências.
python -m pip install pyodbc
Obtenha as configurações de conexão do Banco de Dados SQL do Azure da variável de ambiente adicionada pelo Conector de Serviço. Ao usar o código abaixo, remova a marca de comentário da parte do trecho de código referente ao tipo de autenticação que você deseja usar. Se você usar os Aplicativos de Contêiner do Azure como serviço de computação ou a cadeia de conexão no trecho de código não funcionar, confira Migrar um aplicativo Python para usar conexões sem senha com o Banco de Dados SQL do Azure para se conectar ao Banco de Dados SQL do Azure usando um token de acesso.
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 as 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 Conector de Serviço. Ao usar o código abaixo, remova a marca de comentário da parte do trecho de código referente ao tipo de autenticação que você deseja 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 obter mais informações, confira Página inicial para a programação de cliente para interagir com o Microsoft SQL Server.
Cadeia de conexão
Aviso
A Microsoft recomenda usar o fluxo de autenticação mais seguro disponível. O fluxo de autenticação descrito neste procedimento exige um grau muito alto de confiança no aplicativo e traz riscos que não estão presentes em outros 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 de exemplo |
AZURE_SQL_CONNECTIONSTRING |
Cadeia de conexão do Banco 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 de exemplo |
AZURE_SQL_CONNECTIONSTRING |
Cadeia de conexão do Banco 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 de exemplo |
spring.datasource.url |
URL da fonte de dados do Banco de Dados SQL do Azure |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>; |
spring.datasource.username |
Nome de usuário da fonte de dados do Banco de Dados SQL do Azure |
<sql-user> |
spring.datasource.password |
Senha da fonte de dados do Banco de Dados SQL do Azure |
<sql-password> |
| Nome da variável de ambiente padrão |
Descrição |
Valor de exemplo |
AZURE_SQL_SERVER |
Servidor do Banco de Dados SQL do Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta do Banco de Dados SQL do Azure |
1433 |
AZURE_SQL_DATABASE |
Banco de dados do Banco de Dados SQL do Azure |
<sql-database> |
AZURE_SQL_USER |
Usuário do Banco de Dados SQL do Azure |
<sql-username> |
AZURE_SQL_PASSWORD |
Senha do Banco de Dados SQL do Azure |
<sql-password> |
| Nome da variável de ambiente padrão |
Descrição |
Valor de exemplo |
AZURE_SQL_HOST |
Host do Banco de Dados SQL do Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta do Banco de Dados SQL do Azure |
1433 |
AZURE_SQL_NAME |
Nome do Banco de Dados SQL do Azure |
<sql-database> |
AZURE_SQL_USER |
Usuário do Banco de Dados SQL do Azure |
<sql-username> |
AZURE_SQL_PASSWORD |
Senha do Banco de Dados SQL do Azure |
<sql-password> |
| Nome da variável de ambiente padrão |
Descrição |
Valor de exemplo |
AZURE_SQL_CONNECTIONSTRING |
Cadeia de conexão do Banco 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 de exemplo |
AZURE_SQL_SERVER |
Servidor do Banco de Dados SQL do Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta do Banco de Dados SQL do Azure |
1433 |
AZURE_SQL_DATABASE |
Banco de dados do Banco de Dados SQL do Azure |
<sql-database> |
AZURE_SQL_USERNAME |
Nome de usuário do Banco de Dados SQL do Azure |
<sql-username> |
AZURE_SQL_PASSWORD |
Senha do Banco de Dados SQL do Azure |
<sql-password> |
| Nome da variável de ambiente padrão |
Descrição |
Valor de exemplo |
AZURE_SQL_SERVERNAME |
Nome de servidor do Banco de Dados SQL do Azure |
<sql-server>.database.windows.net,1433 |
AZURE_SQL_DATABASE |
Banco de dados do Banco de Dados SQL do Azure |
<sql-database> |
AZURE_SQL_UID |
UID (identificador exclusivo) do Banco de Dados SQL do Azure |
<sql-username> |
AZURE_SQL_PASSWORD |
Senha do Banco de Dados SQL do Azure |
<sql-password> |
| Nome da variável de ambiente padrão |
Descrição |
Valor de exemplo |
AZURE_SQL_HOST |
Host do Banco de Dados SQL do Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta do Banco de Dados SQL do Azure |
1433 |
AZURE_SQL_DATABASE |
Banco de dados do Banco de Dados SQL do Azure |
<sql-database> |
AZURE_SQL_USERNAME |
Nome de usuário do Banco de Dados SQL do Azure |
<sql-username> |
AZURE_SQL_PASSWORD |
Senha do Banco de Dados SQL do Azure |
<sql-password> |
| Nome da variável de ambiente padrão |
Descrição |
Valor de exemplo |
AZURE_SQL_HOST |
Host do Banco de Dados SQL do Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta do Banco de Dados SQL do Azure |
1433 |
AZURE_SQL_DATABASE |
Banco de dados do Banco de Dados SQL do Azure |
<sql-database> |
AZURE_SQL_USERNAME |
Nome de usuário do Banco de Dados SQL do Azure |
<sql-username> |
AZURE_SQL_PASSWORD |
Senha do Banco de Dados SQL do Azure |
<sql-password> |
Código de exemplo
Confira as etapas e o código abaixo para se conectar ao Banco de Dados SQL do Azure usando uma cadeia de conexão.
Instale as 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 Conector do Serviço.
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 seu 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 Conector do Serviço.
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 uma dependência ao arquivo “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 o aplicativo Spring. O Conector de Serviço é responsável por adicionar as configurações de conexão aos aplicativos Spring.
Instale as dependências.
python -m pip install pyodbc
Obtenha as configurações de conexão do Banco de Dados SQL do Azure da variável de ambiente adicionada pelo Conector de Serviço.
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 as dependências.
pip install django
pip install pyodbc
No arquivo de configuração, acesse as configurações de conexão do Banco de Dados SQL do Azure na variável de ambiente que o Conector de Serviço adicionou.
# 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',
},
},
}
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 Conector do Serviço.
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 as 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 Conector de Serviç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 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);
Baixe os drivers da Microsoft relacionados ao PHP para SQL Server. Para saber mais, confira Introdução aos drivers da Microsoft relacionados ao 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 Conector de Serviço.
<?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);
?>
Baixe o driver Ruby para SQL Server. Para saber mais, confira Configurar o ambiente de desenvolvimento para desenvolvimentos do Ruby.
Obtenha as configurações de conexão do Banco de Dados SQL do Azure das variáveis de ambiente adicionadas pelo Conector de Serviço.
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, confira Página inicial para a programação de cliente para interagir com o Microsoft SQL Server.
Entidade de serviço
| Nome da variável de ambiente padrão |
Descrição |
Valor de exemplo |
AZURE_SQL_CLIENTID |
Sua ID de cliente |
<client-ID> |
AZURE_SQL_CLIENTSECRET |
O segredo do cliente |
<client-secret> |
AZURE_SQL_TENANTID |
Sua ID de locatário |
<tenant-ID> |
AZURE_SQL_CONNECTIONSTRING |
Cadeia de conexão do Banco 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 de exemplo |
AZURE_SQL_CONNECTIONSTRING |
Cadeia de conexão do Banco 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 de exemplo |
spring.datasource.url |
URL da fonte de dados do Banco de Dados SQL do Azure |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryServicePrincipal; |
spring.datasource.username |
Nome de usuário da fonte de dados do Banco de Dados SQL do Azure |
<client-Id> |
spring.datasource.password |
Senha da fonte de dados do Banco de Dados SQL do Azure |
<client-Secret> |
| Nome da variável de ambiente padrão |
Descrição |
Valor de exemplo |
AZURE_SQL_SERVER |
Servidor do Banco de Dados SQL do Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta do Banco de Dados SQL do Azure |
1433 |
AZURE_SQL_DATABASE |
Banco de dados do Banco de Dados SQL do Azure |
<sql-database> |
AZURE_SQL_USER |
Usuário do Banco de Dados SQL do Azure |
your Client Id |
AZURE_SQL_AUTHENTICATION |
Autenticação do SQL do Azure |
ActiveDirectoryServerPrincipal |
AZURE_SQL_PASSWORD |
Senha do Banco de Dados SQL do Azure |
your Client Secret |
| Nome da variável de ambiente padrão |
Descrição |
Valor de exemplo |
AZURE_SQL_SERVER |
Servidor do Banco de Dados SQL do Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta do Banco de Dados SQL do Azure |
1433 |
AZURE_SQL_DATABASE |
Banco de dados do Banco de Dados SQL do Azure |
<sql-database> |
AZURE_SQL_AUTHENTICATIONTYPE |
Tipo de autenticação do Banco de Dados SQL do Azure |
azure-active-directory-default |
AZURE_SQL_CLIENTID |
ID do cliente do Banco de Dados SQL do Azure |
<your Client ID> |
AZURE_SQL_CLIENTSECRET |
Segredo do cliente do Banco de Dados SQL do Azure |
<your Client Secret > |
AZURE_SQL_TENANTID |
ID do locatário do Banco de Dados SQL do Azure |
<your Tenant ID> |
| Nome da variável de ambiente padrão |
Descrição |
Valor de exemplo |
AZURE_SQL_HOST |
Servidor do Banco de Dados SQL do Azure |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
Porta do Banco de Dados SQL do Azure |
1433 |
AZURE_SQL_DATABASE |
Banco de dados do Banco de Dados SQL do Azure |
<sql-database> |
AZURE_SQL_AUTHENTICATION |
Tipo de autenticação do Banco de Dados SQL do Azure |
azure-active-directory-default |
AZURE_SQL_USERNAME |
ID do cliente do Banco de Dados SQL do Azure |
<your Client ID> |
AZURE_SQL_PASSWORD |
Segredo do cliente do Banco de Dados SQL do Azure |
<your Client Secret > |
Código de exemplo
Confira as etapas e o código abaixo para se conectar ao Banco de Dados SQL do Azure usando uma entidade de serviço.
Instale as 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 Conector do Serviço.
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 Active Directory.
Adicione as seguintes dependências no seu 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 Conector do Serviço.
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, confira Conectar-se aos bancos de dados do Azure a partir do Serviço de Aplicativo sem segredos usando uma identidade gerenciada.
Para um aplicativo Spring, se você criar uma conexão com a opção --client-type springboot, o Conector de Serviço definirá as propriedades spring.datasource.url com o formato de valor jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; nos Aplicativos Spring do Azure.
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 propriedade de configuração spring.datasource.password se ela tiver sido configurada antes e adicionar as dependências corretas.
Instale as dependências.
python -m pip install pyodbc
Obtenha as configurações de conexão do Banco de Dados SQL do Azure da variável de ambiente adicionada pelo Conector de Serviço. Ao usar o código abaixo, remova a marca de comentário da parte do trecho de código referente ao tipo de autenticação que você deseja usar. Se você usar os Aplicativos de Contêiner do Azure como serviço de computação ou a cadeia de conexão no trecho de código não funcionar, confira Migrar um aplicativo Python para usar conexões sem senha com o Banco de Dados SQL do Azure para se conectar ao Banco de Dados SQL do Azure usando um token de acesso.
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 as 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 Conector de Serviço. Ao usar o código abaixo, remova a marca de comentário da parte do trecho de código referente ao tipo de autenticação que você deseja 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 obter mais informações, confira Página inicial para a programação de cliente para interagir com o Microsoft SQL Server.
Próximas etapas
Siga os tutoriais listados abaixo para saber mais sobre o Conector de Serviço.