В этой статье описаны поддерживаемые методы проверки подлинности и клиенты, которые можно использовать для подключения приложений к базе данных SQL Azure с помощью соединителя службы. Для каждого поддерживаемого метода мы предоставляем пример кода и описываем имена переменных среды по умолчанию, значения и конфигурацию, полученные при создании подключения к службе.
Поддерживаемые службы вычислений
Соединитель служб можно использовать для подключения следующих вычислительных служб к База данных SQL Azure:
- Служба приложений Azure
- Функции Azure
- Служба Azure Kubernetes (AKS)
- Приложения Azure Spring
Поддерживаемые типы проверки подлинности и клиенты
В следующей таблице показано, какие сочетания методов проверки подлинности и клиентов поддерживаются для подключения вычислительной службы к базе данных 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.
Обновите приложение, следуя руководству по переносу приложения Java для использования подключений без пароля с База данных SQL Azure. Не забудьте удалить spring.datasource.password свойство конфигурации, если оно было задано ранее и добавить правильные зависимости.
Установите зависимости.
python -m pip install mssql-python python-dotenv
Получите конфигурации подключения База данных SQL Azure из переменной среды, добавленной средством подключения службы. В приведённом ниже коде раскомментируйте раздел, соответствующий вашему типу аутентификации.
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.
Обновите приложение, следуя руководству по переносу приложения Java для использования подключений без пароля с База данных SQL Azure. Не забудьте удалить spring.datasource.password свойство конфигурации, если оно было задано ранее и добавить правильные зависимости.
Установите зависимости.
python -m pip install mssql-python python-dotenv
Получите конфигурации подключения База данных SQL Azure из переменной среды, добавленной средством подключения службы. В приведённом ниже коде раскомментируйте раздел, соответствующий вашему типу аутентификации.
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 |
уникальный идентификатор База данных SQL Azure (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
Получите конфигурации подключения База данных SQL Azure из переменной среды, добавленной средством подключения службы.
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
$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);
?>
Скачайте 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.
Обновите приложение, следуя руководству по переносу приложения Java для использования подключений без пароля с База данных SQL Azure. Не забудьте удалить spring.datasource.password свойство конфигурации, если оно было задано ранее и добавить правильные зависимости.
Установите зависимости.
python -m pip install mssql-python python-dotenv
Получите конфигурации подключения База данных SQL Azure из переменной среды, добавленной средством подключения службы. В приведённом ниже коде раскомментируйте раздел, соответствующий вашему типу аутентификации.
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 можно найти в данном руководстве.