Поделиться через


Интеграция Базы данных Azure для MySQL с помощью соединителя сервисов

На этой странице показаны поддерживаемые методы проверки подлинности и клиенты, а также показан пример кода, который можно использовать для подключения База данных Azure для MySQL — гибкий сервер к другим облачным службам с помощью службы Подключение or. На этой странице также показаны имена и значения переменных среды по умолчанию (или конфигурация Spring Boot), которые вы получаете при создании подключения к службе.

Важно!

База данных Azure для MySQL один сервер находится на пути выхода на пенсию. Настоятельно рекомендуется выполнить обновление до База данных Azure для MySQL гибкого сервера. Дополнительные сведения о миграции на гибкий сервер База данных Azure для MySQL см. в статье "Что происходит с одним сервером База данных Azure для MySQL?"

Поддерживаемые службы вычислений

С помощью Подключение службы можно подключить следующие вычислительные службы к База данных Azure для MySQL:

  • Служба приложений Azure
  • Функции Azure
  • Приложения-контейнеры Azure
  • Azure Spring Apps

Поддерживаемые типы проверки подлинности и типы клиентов

В таблице ниже показано, какие сочетания методов проверки подлинности и клиентов поддерживаются для подключения вычислительной службы к База данных Azure для MySQL с помощью Подключение службы. Значение "Да" указывает, что сочетание поддерживается, а значение "Нет" указывает, что оно не поддерживается.

Тип клиента Управляемое удостоверение, назначаемое системой Управляемое удостоверение, назначаемое пользователем Секрет/строка подключения Субъект-служба
.NET Да Да Да Да
Go (go-sql-driver для mysql) Да Да Да Да
Java (JDBC) Да Да Да Да
Java — Spring Boot (JDBC) Да Да Да Да
Node.js (mysql) Да Да Да Да
Python (mysql-connector-python) Да Да Да Да
Python-Django Да Да Да Да
PHP (MySQLi) Да Да Да Да
Ruby (mysql2) Да Да Да Да
Не допускается Да Да Да Да

Эта таблица указывает, что поддерживаются все сочетания типов клиентов и методов проверки подлинности в таблице. Все типы клиентов могут использовать любой из методов проверки подлинности для подключения к База данных Azure для MySQL с помощью Подключение службы.

Примечание.

Назначаемое системой управляемое удостоверение, назначаемое пользователем управляемое удостоверение и субъект-служба, поддерживаются только в Azure CLI.

Имена переменных среды по умолчанию или свойства приложения и пример кода

Ссылайтесь на сведения о подключении и пример кода в следующих таблицах в соответствии с типом проверки подлинности подключения и типом клиента, чтобы подключить вычислительные службы к База данных Azure для MySQL. Дополнительные сведения о соглашениях об именовании проверка статьи Подключение or service.

Управляемое удостоверение, назначаемое системой

Имя переменной среды по умолчанию Description Пример значения
AZURE_MYSQL_CONNECTIONSTRING Строка подключения MySQL ADO.NET Server=<MySQL-DB-name>.mysql.database.azure.com;Database=<MySQL-DB-name>;Port=3306;User Id=<MySQL-DBusername>;SSL Mode=Required;

Пример кода

Ознакомьтесь с инструкциями и кодом ниже, чтобы подключиться к База данных Azure для MySQL с помощью управляемого удостоверения, назначаемого системой.

Для .NET нет подключаемого модуля или библиотеки для поддержки подключений без пароля. Маркер доступа для управляемого удостоверения или субъекта-службы можно получить с помощью клиентской библиотеки, такой как Azure.Identity. Затем вы можете использовать маркер доступа в качестве пароля для подключения к базе данных. При использовании приведенного ниже кода раскомментируйте часть фрагмента кода для используемого типа проверки подлинности.

using Azure.Core;
using Azure.Identity;
using MySqlConnector;

// Uncomment the following lines according to the authentication type.
// For system-assigned managed identity.
// var credential = new DefaultAzureCredential();

// For user-assigned managed identity.
// var credential = new DefaultAzureCredential(
//     new DefaultAzureCredentialOptions
//     {
//         ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_MYSQL_CLIENTID");
//     });

// For service principal.
// var tenantId = Environment.GetEnvironmentVariable("AZURE_MYSQL_TENANTID");
// var clientId = Environment.GetEnvironmentVariable("AZURE_MYSQL_CLIENTID");
// var clientSecret = Environment.GetEnvironmentVariable("AZURE_MYSQL_CLIENTSECRET");
// var credential = new ClientSecretCredential(tenantId, clientId, clientSecret);

var tokenRequestContext = new TokenRequestContext(
    new[] { "https://ossrdbms-aad.database.windows.net/.default" });
AccessToken accessToken = await credential.GetTokenAsync(tokenRequestContext);
// Open a connection to the MySQL server using the access token.
string connectionString =
    $"{Environment.GetEnvironmentVariable("AZURE_MYSQL_CONNECTIONSTRING")};Password={accessToken.Token}";

using var connection = new MySqlConnection(connectionString);
Console.WriteLine("Opening connection using access token...");
await connection.OpenAsync();

// do something

Дополнительные примеры кода см. в Подключение базах данных Azure из Служба приложений без секретов с помощью управляемого удостоверения.

Управляемое удостоверение, назначаемое пользователем

Имя переменной среды по умолчанию Description Пример значения
AZURE_MYSQL_CLIENTID Идентификатор клиента <identity-client-ID>
AZURE_MYSQL_CONNECTIONSTRING Строка подключения MySQL ADO.NET Server=<MySQL-DB-name>.mysql.database.azure.com;Database=<MySQL-DB-name>;Port=3306;User Id=<MySQL-DBusername>;SSL Mode=Required;

Пример кода

Ознакомьтесь с инструкциями и кодом ниже, чтобы подключиться к База данных Azure для MySQL с помощью управляемого удостоверения, назначаемого пользователем.

Для .NET нет подключаемого модуля или библиотеки для поддержки подключений без пароля. Маркер доступа для управляемого удостоверения или субъекта-службы можно получить с помощью клиентской библиотеки, такой как Azure.Identity. Затем вы можете использовать маркер доступа в качестве пароля для подключения к базе данных. При использовании приведенного ниже кода раскомментируйте часть фрагмента кода для используемого типа проверки подлинности.

using Azure.Core;
using Azure.Identity;
using MySqlConnector;

// Uncomment the following lines according to the authentication type.
// For system-assigned managed identity.
// var credential = new DefaultAzureCredential();

// For user-assigned managed identity.
// var credential = new DefaultAzureCredential(
//     new DefaultAzureCredentialOptions
//     {
//         ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_MYSQL_CLIENTID");
//     });

// For service principal.
// var tenantId = Environment.GetEnvironmentVariable("AZURE_MYSQL_TENANTID");
// var clientId = Environment.GetEnvironmentVariable("AZURE_MYSQL_CLIENTID");
// var clientSecret = Environment.GetEnvironmentVariable("AZURE_MYSQL_CLIENTSECRET");
// var credential = new ClientSecretCredential(tenantId, clientId, clientSecret);

var tokenRequestContext = new TokenRequestContext(
    new[] { "https://ossrdbms-aad.database.windows.net/.default" });
AccessToken accessToken = await credential.GetTokenAsync(tokenRequestContext);
// Open a connection to the MySQL server using the access token.
string connectionString =
    $"{Environment.GetEnvironmentVariable("AZURE_MYSQL_CONNECTIONSTRING")};Password={accessToken.Token}";

using var connection = new MySqlConnection(connectionString);
Console.WriteLine("Opening connection using access token...");
await connection.OpenAsync();

// do something

Дополнительные примеры кода см. в Подключение базах данных Azure из Служба приложений без секретов с помощью управляемого удостоверения.

Строка подключения

Имя переменной среды по умолчанию Description Пример значения
AZURE_MYSQL_CONNECTIONSTRING Строка подключения MySQL ADO.NET Server=<MySQL-DB-name>.mysql.database.azure.com;Database=<MySQL-DB-name>;Port=3306;User Id=<MySQL-DBusername>;Password=<MySQL-DB-password>;SSL Mode=Required

Пример кода

Ознакомьтесь с инструкциями и кодом ниже, чтобы подключиться к База данных Azure для MySQL с помощью строка подключения.

  1. Установите зависимости. Следуйте инструкциям по установке соединителя/NET MySQL
  2. В коде строка подключения MySQL из переменных среды, добавленных службой Подключение or service. Чтобы установить зашифрованное подключение к серверу MySQL по протоколу SSL, выполните следующие действия.
    using System;
    using System.Data;
    using MySql.Data.MySqlClient;
    
    string connectionString = Environment.GetEnvironmentVariable("AZURE_MYSQL_CONNECTIONSTRING");
    using (MySqlConnection connection = new MySqlConnection(connectionString))
    {
        connection.Open();
    }
    

Субъект-служба

Имя переменной среды по умолчанию Description Пример значения
AZURE_MYSQL_CLIENTID Идентификатор клиента <client-ID>
AZURE_MYSQL_CLIENTSECRET Секрет клиента <client-secret>
AZURE_MYSQL_TENANTID Идентификатор клиента <tenant-ID>
AZURE_MYSQL_CONNECTIONSTRING Строка подключения MySQL ADO.NET Server=<MySQL-DB-name>.mysql.database.azure.com;Database=<MySQL-DB-name>;Port=3306;User Id=<MySQL-DBusername>;SSL Mode=Required

Пример кода

Ознакомьтесь с инструкциями и кодом ниже, чтобы подключиться к База данных Azure для MySQL с помощью субъекта-службы.

Для .NET нет подключаемого модуля или библиотеки для поддержки подключений без пароля. Маркер доступа для управляемого удостоверения или субъекта-службы можно получить с помощью клиентской библиотеки, такой как Azure.Identity. Затем вы можете использовать маркер доступа в качестве пароля для подключения к базе данных. При использовании приведенного ниже кода раскомментируйте часть фрагмента кода для используемого типа проверки подлинности.

using Azure.Core;
using Azure.Identity;
using MySqlConnector;

// Uncomment the following lines according to the authentication type.
// For system-assigned managed identity.
// var credential = new DefaultAzureCredential();

// For user-assigned managed identity.
// var credential = new DefaultAzureCredential(
//     new DefaultAzureCredentialOptions
//     {
//         ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_MYSQL_CLIENTID");
//     });

// For service principal.
// var tenantId = Environment.GetEnvironmentVariable("AZURE_MYSQL_TENANTID");
// var clientId = Environment.GetEnvironmentVariable("AZURE_MYSQL_CLIENTID");
// var clientSecret = Environment.GetEnvironmentVariable("AZURE_MYSQL_CLIENTSECRET");
// var credential = new ClientSecretCredential(tenantId, clientId, clientSecret);

var tokenRequestContext = new TokenRequestContext(
    new[] { "https://ossrdbms-aad.database.windows.net/.default" });
AccessToken accessToken = await credential.GetTokenAsync(tokenRequestContext);
// Open a connection to the MySQL server using the access token.
string connectionString =
    $"{Environment.GetEnvironmentVariable("AZURE_MYSQL_CONNECTIONSTRING")};Password={accessToken.Token}";

using var connection = new MySqlConnection(connectionString);
Console.WriteLine("Opening connection using access token...");
await connection.OpenAsync();

// do something

Дополнительные примеры кода см. в Подключение базах данных Azure из Служба приложений без секретов с помощью управляемого удостоверения.

Следующие шаги

Следуйте документации, чтобы узнать больше о службе Подключение or.