Megosztás a következőn keresztül:


Az Azure Database for MySQL integrálása a Service Connector használatával

Ez a lap a támogatott hitelesítési módszereket és ügyfeleket mutatja be, és a Service Connector használatával az Azure Database for MySQL – Rugalmas kiszolgáló más felhőszolgáltatásokhoz való csatlakoztatásához használható mintakódot jelenít meg. Ezen a lapon láthatók a környezeti változók alapértelmezett nevei és értékei (vagy a Spring Boot-konfiguráció), amely a szolgáltatáskapcsolat létrehozásakor jelenik meg.

Fontos

Az önálló Azure Database for MySQL-kiszolgáló a kivonási útvonalon van. Határozottan javasoljuk, hogy frissítsen rugalmas Azure Database for MySQL-kiszolgálóra. További információ a rugalmas Azure Database for MySQL-kiszolgálóra való migrálásról: Mi történik az önálló Azure Database for MySQL-kiszolgálóval?

Támogatott számítási szolgáltatások

A Service Connector segítségével a következő számítási szolgáltatásokat csatlakoztathatja az Azure Database for MySQL-hez:

  • Azure App Service
  • Azure Functions
  • Azure Container-alkalmazások
  • Azure Spring Apps

Támogatott hitelesítési típusok és ügyféltípusok

Az alábbi táblázat azt mutatja be, hogy a hitelesítési módszerek és az ügyfelek mely kombinációi támogatottak a számítási szolgáltatásnak a Service Connector használatával az Azure Database for MySQL-hez való csatlakoztatásához. Az "Igen" azt jelzi, hogy a kombináció támogatott, míg a "Nem" azt jelzi, hogy nem támogatott.

Ügyfél típusa Rendszer által hozzárendelt felügyelt identitás Felhasználó által hozzárendelt felügyelt identitás Titkos kód/kapcsolati sztring Szolgáltatásnév
.NET Igen Igen Igen Igen
Go (go-sql-driver for mysql) Igen Igen Igen Igen
Java (JDBC) Igen Igen Igen Igen
Java – Spring Boot (JDBC) Igen Igen Igen Igen
Node.js (mysql) Igen Igen Igen Igen
Python (mysql-connector-python) Igen Igen Igen Igen
Python-Django Igen Igen Igen Igen
PHP (MySQLi) Igen Igen Igen Igen
Ruby (mysql2) Igen Igen Igen Igen
Egyik sem Igen Igen Igen Igen

Ez a táblázat azt jelzi, hogy a tábla ügyféltípusainak és hitelesítési módszereinek összes kombinációja támogatott. Minden ügyféltípus a hitelesítési módszerek bármelyikével csatlakozhat az Azure Database for MySQL-hez a Service Connector használatával.

Feljegyzés

A rendszer által hozzárendelt felügyelt identitás, a felhasználó által hozzárendelt felügyelt identitás és a szolgáltatásnév csak az Azure CLI-n támogatott.

Alapértelmezett környezeti változónevek vagy alkalmazástulajdonságok és mintakód

A számítási szolgáltatások Azure Database for MySQL-hez való csatlakoztatásához hivatkozzon a kapcsolat részleteire és a mintakódra a következő táblázatokban, a kapcsolat hitelesítési típusának és ügyféltípusának megfelelően. Az elnevezési konvenciókról a Service Connector belsős cikkében talál további információt.

Rendszer által hozzárendelt felügyelt identitás

Alapértelmezett környezeti változó neve Leírás Példaérték
AZURE_MYSQL_CONNECTIONSTRING ADO.NET MySQL-kapcsolati sztring Server=<MySQL-DB-name>.mysql.database.azure.com;Database=<MySQL-DB-name>;Port=3306;User Id=<MySQL-DBusername>;SSL Mode=Required;

Mintakód

Az alábbi lépéseket és kódot követve csatlakozhat az Azure Database for MySQL-hez egy rendszer által hozzárendelt felügyelt identitás használatával.

A .NET esetében nincs beépülő modul vagy tár a jelszó nélküli kapcsolatok támogatásához. A felügyelt identitáshoz vagy szolgáltatásnévhez hozzáférési jogkivonatot kérhet le az olyan ügyfélkódtárak használatával, mint az Azure.Identity. Ezután jelszóként használhatja a hozzáférési jogkivonatot az adatbázishoz való csatlakozáshoz. Az alábbi kód használatakor bontsa ki a kódrészlet azon részét, amely a használni kívánt hitelesítési típushoz tartozik.

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

További kódmintákért lásd : Csatlakozás azure-adatbázisokhoz az App Service-ből titkos kódok nélkül felügyelt identitás használatával.

Felhasználó által hozzárendelt felügyelt identitás

Alapértelmezett környezeti változó neve Leírás Példaérték
AZURE_MYSQL_CLIENTID Az ügyfél azonosítója <identity-client-ID>
AZURE_MYSQL_CONNECTIONSTRING ADO.NET MySQL-kapcsolati sztring Server=<MySQL-DB-name>.mysql.database.azure.com;Database=<MySQL-DB-name>;Port=3306;User Id=<MySQL-DBusername>;SSL Mode=Required;

Mintakód

Az alábbi lépéseket és kódot követve csatlakozhat az Azure Database for MySQL-hez egy felhasználó által hozzárendelt felügyelt identitás használatával.

A .NET esetében nincs beépülő modul vagy tár a jelszó nélküli kapcsolatok támogatásához. A felügyelt identitáshoz vagy szolgáltatásnévhez hozzáférési jogkivonatot kérhet le az olyan ügyfélkódtárak használatával, mint az Azure.Identity. Ezután jelszóként használhatja a hozzáférési jogkivonatot az adatbázishoz való csatlakozáshoz. Az alábbi kód használatakor bontsa ki a kódrészlet azon részét, amely a használni kívánt hitelesítési típushoz tartozik.

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

További kódmintákért lásd : Csatlakozás azure-adatbázisokhoz az App Service-ből titkos kódok nélkül felügyelt identitás használatával.

Kapcsolati sztring

Alapértelmezett környezeti változó neve Leírás Példaérték
AZURE_MYSQL_CONNECTIONSTRING ADO.NET MySQL-kapcsolati sztring 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

Mintakód

Az alábbi lépéseket és kódot követve csatlakozhat az Azure Database for MySQL-hez egy kapcsolati sztring használatával.

  1. Telepítse a függőségeket. Kövesse az útmutatót az összekötő/NET MySQL telepítéséhez
  2. Kódban kérje le a MySQL-kapcsolati sztring a Service Connector szolgáltatás által hozzáadott környezeti változókból. Ha SSL-en keresztül szeretne titkosított kapcsolatot létesíteni a MySQL-kiszolgálóval, tekintse meg ezeket a lépéseket.
    using System;
    using System.Data;
    using MySql.Data.MySqlClient;
    
    string connectionString = Environment.GetEnvironmentVariable("AZURE_MYSQL_CONNECTIONSTRING");
    using (MySqlConnection connection = new MySqlConnection(connectionString))
    {
        connection.Open();
    }
    

Szolgáltatásnév

Alapértelmezett környezeti változó neve Leírás Példaérték
AZURE_MYSQL_CLIENTID Az ügyfél azonosítója <client-ID>
AZURE_MYSQL_CLIENTSECRET Az ügyfél titkos kódja <client-secret>
AZURE_MYSQL_TENANTID A bérlő azonosítója <tenant-ID>
AZURE_MYSQL_CONNECTIONSTRING ADO.NET MySQL-kapcsolati sztring Server=<MySQL-DB-name>.mysql.database.azure.com;Database=<MySQL-DB-name>;Port=3306;User Id=<MySQL-DBusername>;SSL Mode=Required

Mintakód

Tekintse meg az alábbi lépéseket és kódot az Azure Database for MySQL szolgáltatásnévvel való csatlakozásához.

A .NET esetében nincs beépülő modul vagy tár a jelszó nélküli kapcsolatok támogatásához. A felügyelt identitáshoz vagy szolgáltatásnévhez hozzáférési jogkivonatot kérhet le az olyan ügyfélkódtárak használatával, mint az Azure.Identity. Ezután jelszóként használhatja a hozzáférési jogkivonatot az adatbázishoz való csatlakozáshoz. Az alábbi kód használatakor bontsa ki a kódrészlet azon részét, amely a használni kívánt hitelesítési típushoz tartozik.

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

További kódmintákért lásd : Csatlakozás azure-adatbázisokhoz az App Service-ből titkos kódok nélkül felügyelt identitás használatával.

Következő lépések

A Service Connectorról a dokumentációt követve tudhat meg többet.