В этой статье описаны поддерживаемые методы проверки подлинности и клиенты, которые можно использовать для подключения приложений к базе данных SQL Azure с помощью соединителя службы. Для каждого поддерживаемого метода мы предоставляем пример кода и описываем имена переменных среды по умолчанию, значения и конфигурацию, полученные при создании подключения к службе.
Поддерживаемые службы вычислений
Соединитель служб можно использовать для подключения следующих вычислительных служб к База данных SQL Azure:
- Служба приложений Azure
- Приложения-контейнеры Azure
- Функции Azure
- Служба Azure Kubernetes (AKS)
- Azure Spring Apps
Поддерживаемые типы проверки подлинности и клиенты
В следующей таблице показано, какие сочетания методов проверки подлинности и клиентов поддерживаются для подключения вычислительной службы к базе данных SQL Azure с помощью соединителя служб. Значение "Да " указывает, что сочетание поддерживается, а значение No указывает, что оно не поддерживается.
| Тип клиента |
Управляемое удостоверение, назначаемое системой |
Управляемое удостоверение, назначаемое пользователем |
Секрет/строка подключения |
Субъект-служба |
| .NET |
Да |
Да |
Да |
Да |
| Go |
Нет |
Нет |
Да |
Нет |
| Java |
Да |
Да |
Да |
Да |
| Java — Spring Boot |
Да |
Да |
Да |
Да |
| Node.js |
Да |
Да |
Да |
Да |
| PHP |
Нет |
Нет |
Да |
Нет |
| Python |
Да |
Да |
Да |
Да |
| Python — Django |
Нет |
Нет |
Да |
Нет |
| Ruby |
Нет |
Нет |
Да |
Нет |
| нет |
Да |
Да |
Да |
Да |
Примечание.
Назначаемое системой управляемое удостоверение, назначаемое пользователем, и проверка подлинности субъекта-службы поддерживается только в Azure CLI.
Имена переменных среды по умолчанию или свойства приложения и пример кода
Используйте следующие сведения о подключении для подключения вычислительных служб к базе данных SQL Azure. В каждом примере замените текст заполнителя <sql-server>, <sql-database>, <sql-username> и <sql-password> на ваше собственное имя сервера, имя базы данных, идентификатор пользователя и пароль. Дополнительные сведения о соглашениях об именовании см. во внутренней статье соединителя служб.
Управляемое удостоверение, назначаемое системой
| Имя переменной среды по умолчанию |
Описание |
Пример значения |
AZURE_SQL_CONNECTIONSTRING |
Строка подключения к базе данных Azure SQL |
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;Authentication=ActiveDirectoryManagedIdentity |
| Имя переменной среды по умолчанию |
Описание |
Пример значения |
AZURE_SQL_CONNECTIONSTRING |
Строка подключения к базе данных Azure SQL |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-database>;authentication=ActiveDirectoryMSI; |
| Имя переменной среды по умолчанию |
Описание |
Пример значения |
spring.datasource.url |
URL-адрес источника данных База данных SQL Azure |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; |
| Имя переменной среды по умолчанию |
Описание |
Пример значения |
AZURE_SQL_SERVER |
сервер Базы данных SQL Azure; |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
порт базы данных Azure SQL |
1433 |
AZURE_SQL_DATABASE |
База данных Azure SQL |
<sql-database> |
AZURE_SQL_AUTHENTICATION |
Аутентификация в Azure SQL |
ActiveDirectoryMsi |
| Имя переменной среды по умолчанию |
Описание |
Пример значения |
AZURE_SQL_SERVER |
сервер Базы данных SQL Azure; |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
порт базы данных Azure SQL |
1433 |
AZURE_SQL_DATABASE |
База данных Azure SQL |
<sql-database> |
AZURE_SQL_AUTHENTICATIONTYPE |
тип проверки подлинности База данных SQL Azure |
azure-active-directory-default |
| Имя переменной среды по умолчанию |
Описание |
Пример значения |
AZURE_SQL_HOST |
сервер Базы данных SQL Azure; |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
порт базы данных Azure SQL |
1433 |
AZURE_SQL_DATABASE |
База данных Azure SQL |
<sql-database> |
AZURE_SQL_AUTHENTICATION |
тип проверки подлинности База данных SQL Azure |
azure-active-directory-default |
Пример кода
Чтобы подключиться к базе данных SQL Azure с помощью управляемого удостоверения, назначаемого системой, см. следующие действия и пример кода.
Установите зависимости.
dotnet add package Microsoft.Data.SqlClient
Получите строку подключения базы данных Azure SQL из переменной окружения, добавленной соединителем службы.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Для получения дополнительной информации см. Использование проверки подлинности управляемого удостоверения Active Directory.
Добавьте следующие зависимости в файл 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>
Получите строку подключения базы данных Azure SQL из переменной окружения, добавленной соединителем службы.
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();
}
}
}
Дополнительные сведения см. в статье «Подключение к базам данных Azure из службы приложений без использования секретов с помощью управляемого удостоверения».
Если вы создаете подключение с параметром --client-type springboot, соединитель служб задает свойства spring.datasource.url с форматом значений jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; в Azure Spring Apps.
Обновите приложение, следуя руководству по переносу приложения Java для использования подключений без пароля с Azure SQL Database. Не забудьте удалить spring.datasource.password свойство конфигурации, если оно было задано ранее и добавить правильные зависимости.
Установите зависимости.
python -m pip install mssql-python python-dotenv
Получите конфигурации подключения Azure SQL Database из переменной среды, добавленной средством подключения службы. При использовании приведенного ниже кода раскомментируйте часть фрагмента кода для типа проверки подлинности, который вы хотите использовать.
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)
- Установите зависимости.
npm install mssql
- Получите конфигурации подключения База данных SQL Azure из переменных среды, добавленных соединителем службы. При использовании приведенного ниже кода раскомментируйте часть фрагмента кода для типа проверки подлинности, который вы хотите использовать.
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);
Дополнительные сведения см. на домашней странице клиентского программирования для Microsoft SQL Server.
Управляемое удостоверение, назначаемое пользователем
| Имя переменной среды по умолчанию |
Описание |
Пример значения |
AZURE_SQL_CONNECTIONSTRING |
Строка подключения к базе данных Azure SQL |
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;User ID=<identity-client-ID>;Authentication=ActiveDirectoryManagedIdentity |
| Имя переменной среды по умолчанию |
Описание |
Пример значения |
AZURE_SQL_CONNECTIONSTRING |
Строка подключения к базе данных Azure SQL |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-database>;msiClientId=<msiClientId>;authentication=ActiveDirectoryMSI; |
| Имя переменной среды по умолчанию |
Описание |
Пример значения |
spring.datasource.url |
URL-адрес источника данных База данных SQL Azure |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;msiClientId=<msiClientId>;authentication=ActiveDirectoryMSI; |
| Имя переменной среды по умолчанию |
Описание |
Пример значения |
AZURE_SQL_SERVER |
сервер Базы данных SQL Azure; |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
порт базы данных Azure SQL |
1433 |
AZURE_SQL_DATABASE |
База данных Azure SQL |
<sql-database> |
AZURE_SQL_USER |
пользователь База данных SQL Azure |
Object (principal) ID |
AZURE_SQL_AUTHENTICATION |
Аутентификация в Azure SQL |
ActiveDirectoryMsi |
| Имя переменной среды по умолчанию |
Описание |
Пример значения |
AZURE_SQL_SERVER |
сервер Базы данных SQL Azure; |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
порт базы данных Azure SQL |
1433 |
AZURE_SQL_DATABASE |
База данных Azure SQL |
<sql-database> |
AZURE_SQL_AUTHENTICATIONTYPE |
тип проверки подлинности База данных SQL Azure |
azure-active-directory-default |
AZURE_SQL_CLIENTID |
идентификатор клиента База данных SQL Azure |
<identity-client-ID> |
| Имя переменной среды по умолчанию |
Описание |
Пример значения |
AZURE_SQL_HOST |
сервер Базы данных SQL Azure; |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
порт базы данных Azure SQL |
1433 |
AZURE_SQL_DATABASE |
База данных Azure SQL |
<sql-database> |
AZURE_SQL_AUTHENTICATION |
тип проверки подлинности База данных SQL Azure |
azure-active-directory-default |
AZURE_SQL_USERNAME |
идентификатор клиента База данных SQL Azure |
<your Client ID> |
Пример кода
Чтобы подключиться к базе данных SQL Azure с помощью управляемого удостоверения, назначаемого пользователем, см. следующие действия и пример кода.
Установите зависимости.
dotnet add package Microsoft.Data.SqlClient
Получите строку подключения базы данных Azure SQL из переменной окружения, добавленной соединителем службы.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Для получения дополнительной информации см. Использование проверки подлинности управляемого удостоверения Active Directory.
Добавьте следующие зависимости в файл 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>
Получите строку подключения базы данных Azure SQL из переменной окружения, добавленной соединителем службы.
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();
}
}
}
Дополнительные сведения см. в статье «Подключение к базам данных Azure из службы приложений без использования секретов с помощью управляемого удостоверения».
Если вы создаете подключение с параметром --client-type springboot, соединитель служб задает свойства spring.datasource.url с форматом значений jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; в Azure Spring Apps.
Обновите приложение, следуя руководству по переносу приложения Java для использования подключений без пароля с Azure SQL Database. Не забудьте удалить spring.datasource.password свойство конфигурации, если оно было задано ранее и добавить правильные зависимости.
Установите зависимости.
python -m pip install mssql-python python-dotenv
Получите конфигурации подключения Azure SQL Database из переменной среды, добавленной средством подключения службы. При использовании приведенного ниже кода раскомментируйте часть фрагмента кода для типа проверки подлинности, который вы хотите использовать.
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)
- Установите зависимости.
npm install mssql
- Получите конфигурации подключения База данных SQL Azure из переменных среды, добавленных соединителем службы. При использовании приведенного ниже кода раскомментируйте часть фрагмента кода для типа проверки подлинности, который вы хотите использовать.
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);
Дополнительные сведения см. на домашней странице клиентского программирования для Microsoft SQL Server.
строка подключения
Предупреждение
Корпорация Майкрософт рекомендует использовать самый безопасный поток проверки подлинности. Поток проверки подлинности, описанный в этой процедуре, требует высокого уровня доверия к приложению и несет риски, которые не присутствуют в других потоках. Этот поток следует использовать только в том случае, если другие более безопасные потоки, такие как управляемые удостоверения, невозможны.
| Имя переменной среды по умолчанию |
Описание |
Пример значения |
AZURE_SQL_CONNECTIONSTRING |
Строка подключения к базе данных Azure SQL |
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;Password=<sql-password> |
| Имя переменной среды по умолчанию |
Описание |
Пример значения |
AZURE_SQL_CONNECTIONSTRING |
Строка подключения к базе данных Azure SQL |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-database>;user=<sql-username>;password=<sql-password>; |
| Имя переменной среды по умолчанию |
Описание |
Пример значения |
spring.datasource.url |
URL-адрес источника данных База данных SQL Azure |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>; |
spring.datasource.username |
имя пользователя источника данных База данных SQL Azure |
<sql-user> |
spring.datasource.password |
пароль для источника данных базы данных Azure SQL |
<sql-password> |
| Имя переменной среды по умолчанию |
Описание |
Пример значения |
AZURE_SQL_SERVER |
сервер Базы данных SQL Azure; |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
порт базы данных Azure SQL |
1433 |
AZURE_SQL_DATABASE |
База данных Azure SQL |
<sql-database> |
AZURE_SQL_USER |
пользователь База данных SQL Azure |
<sql-username> |
AZURE_SQL_PASSWORD |
пароль базы данных Azure SQL |
<sql-password> |
| Имя переменной среды по умолчанию |
Описание |
Пример значения |
AZURE_SQL_HOST |
Хост SQL Azure Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
порт базы данных Azure SQL |
1433 |
AZURE_SQL_NAME |
имя базы данных Azure SQL |
<sql-database> |
AZURE_SQL_USER |
пользователь База данных SQL Azure |
<sql-username> |
AZURE_SQL_PASSWORD |
пароль базы данных Azure SQL |
<sql-password> |
| Имя переменной среды по умолчанию |
Описание |
Пример значения |
AZURE_SQL_CONNECTIONSTRING |
Строка подключения к базе данных Azure SQL |
server=<sql-server>.database.windows.net;port=1433;database=<sql-database>;user id=<sql-username>;password=<sql-password>; |
| Имя переменной среды по умолчанию |
Описание |
Пример значения |
AZURE_SQL_SERVER |
сервер Базы данных SQL Azure; |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
порт базы данных Azure SQL |
1433 |
AZURE_SQL_DATABASE |
База данных Azure SQL |
<sql-database> |
AZURE_SQL_USERNAME |
имя пользователя для базы данных SQL Azure |
<sql-username> |
AZURE_SQL_PASSWORD |
пароль базы данных Azure SQL |
<sql-password> |
| Имя переменной среды по умолчанию |
Описание |
Пример значения |
AZURE_SQL_SERVERNAME |
имя сервера База данных SQL Azure |
<sql-server>.database.windows.net,1433 |
AZURE_SQL_DATABASE |
База данных Azure SQL |
<sql-database> |
AZURE_SQL_UID |
уникальный идентификатор Azure SQL Database (UID) |
<sql-username> |
AZURE_SQL_PASSWORD |
пароль базы данных Azure SQL |
<sql-password> |
| Имя переменной среды по умолчанию |
Описание |
Пример значения |
AZURE_SQL_HOST |
Хост SQL Azure Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
порт базы данных Azure SQL |
1433 |
AZURE_SQL_DATABASE |
База данных Azure SQL |
<sql-database> |
AZURE_SQL_USERNAME |
имя пользователя для базы данных SQL Azure |
<sql-username> |
AZURE_SQL_PASSWORD |
пароль базы данных Azure SQL |
<sql-password> |
| Имя переменной среды по умолчанию |
Описание |
Пример значения |
AZURE_SQL_HOST |
Хост SQL Azure Database |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
порт базы данных Azure SQL |
1433 |
AZURE_SQL_DATABASE |
База данных Azure SQL |
<sql-database> |
AZURE_SQL_USERNAME |
имя пользователя для базы данных SQL Azure |
<sql-username> |
AZURE_SQL_PASSWORD |
пароль базы данных Azure SQL |
<sql-password> |
Пример кода
Чтобы подключиться к базе данных SQL Azure с помощью строки подключения, выполните следующие действия и пример кода.
Установите зависимости.
dotnet add package Microsoft.Data.SqlClient
Получите строку подключения базы данных Azure SQL из переменной окружения, добавленной соединителем службы.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Добавьте следующие зависимости в файл pom.xml :
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>10.2.0.jre11</version>
</dependency>
Получите строку подключения базы данных Azure SQL из переменной окружения, добавленной соединителем службы.
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();
}
}
}
- Добавьте зависимость в файл 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>
- Настройте приложение Spring. Конфигурации подключения добавляются в Spring Apps посредством Коннектора службы.
Установите зависимости.
python -m pip install mssql-python python-dotenv
Получите конфигурации подключения Azure SQL Database из переменной среды, добавленной средством подключения службы.
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)
Установите зависимости.
pip install django
pip install mssql-django pyodbc
В файле параметров получите конфигурации подключения базы данных Azure SQL из переменной среды, добавленной 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',
},
},
}
Установите зависимость.
go install github.com/microsoft/go-mssqldb@latest
Получите строку подключения базы данных Azure SQL из переменной окружения, добавленной соединителем службы.
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")
- Установите зависимости.
npm install mssql
- Получите конфигурации подключения База данных SQL Azure из переменных среды, добавленных соединителем службы.
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);
Скачайте драйверы Майкрософт для PHP для SQL Server. Дополнительные сведения см. в описании "Начало работы с драйверами Майкрософт для PHP для SQL Server".
Получите конфигурации подключения База данных SQL Azure из переменных среды, добавленных соединителем службы.
<?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);
?>
Скачайте Ruby Driver для SQL Server. Дополнительные сведения см. в описании настройки среды разработки для разработки Ruby.
Получите конфигурации подключения База данных SQL Azure из переменных среды, добавленных соединителем службы.
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
Дополнительные сведения см. на домашней странице клиентского программирования для Microsoft SQL Server.
Субъект-служба
| Имя переменной среды по умолчанию |
Описание |
Пример значения |
AZURE_SQL_CLIENTID |
Идентификатор клиента |
<client-ID> |
AZURE_SQL_CLIENTSECRET |
Секрет клиента |
<client-secret> |
AZURE_SQL_TENANTID |
Идентификатор клиента |
<tenant-ID> |
AZURE_SQL_CONNECTIONSTRING |
Строка подключения к базе данных Azure SQL |
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;User ID=<client-Id>;Password=<client-secret>;Authentication=ActiveDirectoryServicePrincipal |
| Имя переменной среды по умолчанию |
Описание |
Пример значения |
AZURE_SQL_CONNECTIONSTRING |
Строка подключения к базе данных Azure SQL |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-database>;user=<client-Id>;password=<client-secret>;authentication=ActiveDirectoryServicePrincipal; |
| Имя переменной среды по умолчанию |
Описание |
Пример значения |
spring.datasource.url |
URL-адрес источника данных База данных SQL Azure |
jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryServicePrincipal; |
spring.datasource.username |
имя пользователя источника данных База данных SQL Azure |
<client-Id> |
spring.datasource.password |
пароль для источника данных базы данных Azure SQL |
<client-Secret> |
| Имя переменной среды по умолчанию |
Описание |
Пример значения |
AZURE_SQL_SERVER |
сервер Базы данных SQL Azure; |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
порт базы данных Azure SQL |
1433 |
AZURE_SQL_DATABASE |
База данных Azure SQL |
<sql-database> |
AZURE_SQL_USER |
пользователь База данных SQL Azure |
your Client Id |
AZURE_SQL_AUTHENTICATION |
Аутентификация в Azure SQL |
ActiveDirectoryServerPrincipal |
AZURE_SQL_PASSWORD |
пароль базы данных Azure SQL |
your Client Secret |
| Имя переменной среды по умолчанию |
Описание |
Пример значения |
AZURE_SQL_SERVER |
сервер Базы данных SQL Azure; |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
порт базы данных Azure SQL |
1433 |
AZURE_SQL_DATABASE |
База данных Azure SQL |
<sql-database> |
AZURE_SQL_AUTHENTICATIONTYPE |
тип проверки подлинности База данных SQL Azure |
azure-active-directory-default |
AZURE_SQL_CLIENTID |
идентификатор клиента База данных SQL Azure |
<your Client ID> |
AZURE_SQL_CLIENTSECRET |
секрет клиента База данных SQL Azure |
<your Client Secret > |
AZURE_SQL_TENANTID |
идентификатор арендатора базы данных SQL Azure |
<your Tenant ID> |
| Имя переменной среды по умолчанию |
Описание |
Пример значения |
AZURE_SQL_HOST |
сервер Базы данных SQL Azure; |
<sql-server>.database.windows.net |
AZURE_SQL_PORT |
порт базы данных Azure SQL |
1433 |
AZURE_SQL_DATABASE |
База данных Azure SQL |
<sql-database> |
AZURE_SQL_AUTHENTICATION |
тип проверки подлинности База данных SQL Azure |
azure-active-directory-default |
AZURE_SQL_USERNAME |
идентификатор клиента База данных SQL Azure |
<your Client ID> |
AZURE_SQL_PASSWORD |
секрет клиента База данных SQL Azure |
<your Client Secret > |
Пример кода
Чтобы подключиться к базе данных SQL Azure с помощью субъекта-службы, выполните следующие действия и пример кода.
Установите зависимости.
dotnet add package Microsoft.Data.SqlClient
Получите строку подключения базы данных Azure SQL из переменной окружения, добавленной соединителем службы.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
Для получения дополнительной информации см. Использование проверки подлинности управляемого удостоверения Active Directory.
Добавьте следующие зависимости в файл 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>
Получите строку подключения базы данных Azure SQL из переменной окружения, добавленной соединителем службы.
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();
}
}
}
Дополнительные сведения см. в статье «Подключение к базам данных Azure из службы приложений без использования секретов с помощью управляемого удостоверения».
Если вы создаете подключение с параметром --client-type springboot, соединитель служб задает свойства spring.datasource.url с форматом значений jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; в Azure Spring Apps.
Обновите приложение, следуя руководству по переносу приложения Java для использования подключений без пароля с Azure SQL Database. Не забудьте удалить spring.datasource.password свойство конфигурации, если оно было задано ранее и добавить правильные зависимости.
Установите зависимости.
python -m pip install mssql-python python-dotenv
Получите конфигурации подключения Azure SQL Database из переменной среды, добавленной средством подключения службы. При использовании приведенного ниже кода раскомментируйте часть фрагмента кода для типа проверки подлинности, который вы хотите использовать.
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)
- Установите зависимости.
npm install mssql
- Получите конфигурации подключения База данных SQL Azure из переменных среды, добавленных соединителем службы. При использовании приведенного ниже кода раскомментируйте часть фрагмента кода для типа проверки подлинности, который вы хотите использовать.
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);
Дополнительные сведения см. на домашней странице клиентского программирования для Microsoft SQL Server.
Следующие шаги
Более подробную информацию о Service Connector можно найти в данном руководстве.