Integrace služby Azure Database for MySQL s konektorem služby
Článek
Tato stránka ukazuje podporované metody ověřování a klienty a ukazuje ukázkový kód, který můžete použít k připojení flexibilního serveru Azure Database for MySQL k jiným cloudovým službám pomocí konektoru služby. Tato stránka také zobrazuje výchozí názvy proměnných prostředí a hodnoty (nebo konfiguraci Spring Boot), které získáte při vytváření připojení služby.
Důležité
Jednoúčelový server Azure Database for MySQL je na cestě vyřazení. Důrazně doporučujeme upgradovat na flexibilní server Azure Database for MySQL. Další informace o migraci na flexibilní server Azure Database for MySQL najdete v tématu Co se děje s jednoúčelovým serverem Azure Database for MySQL?
Podporované výpočetní služby
Konektor služby se dá použít k připojení následujících výpočetních služeb ke službě Azure Database for MySQL:
Azure App Service
Azure Container Apps
Azure Functions
Azure Kubernetes Service (AKS)
Azure Spring Apps
Podporované typy ověřování a typy klientů
Následující tabulka ukazuje, které kombinace metod ověřování a klientů se podporují pro připojení výpočetní služby ke službě Azure Database for MySQL pomocí konektoru služby. "Ano" označuje, že kombinace je podporována, zatímco "Ne" označuje, že není podporována.
Typ klienta
Spravovaná identita přiřazená systémem
Spravovaná identita přiřazená uživatelem
Tajný kód/připojovací řetězec
Instanční objekt
.NET
Ano
Ano
Ano
Yes
Go (go-sql-driver for mysql)
Ano
Ano
Ano
Yes
Java (JDBC)
Ano
Ano
Ano
Yes
Java – Spring Boot (JDBC)
Ano
Ano
Ano
Yes
Node.js (mysql)
Ano
Ano
Ano
Yes
Python (mysql-connector-python)
Ano
Ano
Ano
Yes
Python-Django
Ano
Ano
Ano
Yes
PHP (MySQLi)
Ano
Ano
Ano
Yes
Ruby (mysql2)
Ano
Ano
Ano
Yes
Nic
Ano
Ano
Ano
Yes
Tato tabulka označuje, že jsou podporovány všechny kombinace typů klientů a metod ověřování v tabulce. Všechny typy klientů můžou pro připojení ke službě Azure Database for MySQL pomocí konektoru služby použít některou z metod ověřování.
Poznámka:
Spravovaná identita přiřazená systémem, spravovaná identita přiřazená uživatelem a instanční objekt se podporují jenom v Azure CLI.
Výchozí názvy proměnných prostředí nebo vlastnosti aplikace a ukázkový kód
Odkazujte na podrobnosti připojení a vzorový kód v následujících tabulkách podle typu ověřování a typu klienta vašeho připojení pro připojení výpočetních služeb ke službě Azure Database for MySQL. Další informace o konvencích vytváření názvů najdete v interním článku o konektoru služby.
Pro .NET neexistuje modul plug-in ani knihovna, které podporují připojení bez hesla. Přístupový token pro spravovanou identitu nebo instanční objekt můžete získat pomocí klientské knihovny, jako je Azure.Identity. Přístupový token pak můžete použít jako heslo pro připojení k databázi. Při použití následujícího kódu odkomentujte část fragmentu kódu pro typ ověřování, který chcete použít.
using Azure.Core;
using Azure.Identity;
using MySqlConnector;
// Uncomment the following lines corresponding to the authentication type you want to use.
// 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
Do souboru pom.xml přidejte následující závislosti:
Pokud pro aplikaci Spring vytvoříte připojení s možností --client-type springboot, Service Connector nastaví vlastnosti spring.datasource.azure.passwordless-enabledspring.datasource.urla spring.datasource.username azure Spring Apps.
Ověřte se pomocí přístupového tokenu získat prostřednictvím azure-identity knihovny a získejte informace o připojení z proměnné prostředí přidané konektorem service connectoru. Při použití následujícího kódu odkomentujte část fragmentu kódu pro typ ověřování, který chcete použít.
from azure.identity import ManagedIdentityCredential, ClientSecretCredential
import mysql.connector
import os
# Uncomment the following lines corresponding to the authentication type you want to use.
# For system-assigned managed identity.
# cred = ManagedIdentityCredential()
# For user-assigned managed identity.
# managed_identity_client_id = os.getenv('AZURE_MYSQL_CLIENTID')
# cred = ManagedIdentityCredential(client_id=managed_identity_client_id)
# For service principal
# tenant_id = os.getenv('AZURE_MYSQL_TENANTID')
# client_id = os.getenv('AZURE_MYSQL_CLIENTID')
# client_secret = os.getenv('AZURE_MYSQL_CLIENTSECRET')
# cred = ClientSecretCredential(tenant_id=tenant_id, client_id=client_id, client_secret=client_secret)
# acquire token
accessToken = cred.get_token('https://ossrdbms-aad.database.windows.net/.default')
# open connect to Azure MySQL with the access token.
host = os.getenv('AZURE_MYSQL_HOST')
database = os.getenv('AZURE_MYSQL_NAME')
user = os.getenv('AZURE_MYSQL_USER')
password = accessToken.token
cnx = mysql.connector.connect(user=user,
password=password,
host=host,
database=database)
cnx.close()
Nainstalujte závislosti.
pip install azure-identity
Získejte přístupový token prostřednictvím azure-identity knihovny s proměnnými prostředí přidanými konektorem služby Service Connector. Při použití následujícího kódu odkomentujte část fragmentu kódu pro typ ověřování, který chcete použít.
from azure.identity import ManagedIdentityCredential, ClientSecretCredential
import os
# Uncomment the following lines corresponding to the authentication type you want to use.
# system-assigned managed identity
# cred = ManagedIdentityCredential()
# user-assigned managed identity
# managed_identity_client_id = os.getenv('AZURE_MYSQL_CLIENTID')
# cred = ManagedIdentityCredential(client_id=managed_identity_client_id)
# service principal
# tenant_id = os.getenv('AZURE_MYSQL_TENANTID')
# client_id = os.getenv('AZURE_MYSQL_CLIENTID')
# client_secret = os.getenv('AZURE_MYSQL_CLIENTSECRET')
# cred = ClientSecretCredential(tenant_id=tenant_id, client_id=client_id, client_secret=client_secret)
# acquire token
accessToken = cred.get_token('https://ossrdbms-aad.database.windows.net/.default')
V souboru nastavení získejte informace o databázi Azure MySQL z proměnných prostředí přidaných službou Service Connector. Pro přístup k databázi použijte accessToken získané v předchozím kroku.
# in your setting file, eg. settings.py
host = os.getenv('AZURE_MYSQL_HOST')
database = os.getenv('AZURE_MYSQL_NAME')
user = os.getenv('AZURE_MYSQL_USER')
password = accessToken.token # this is accessToken acquired from above step.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': database,
'USER': user,
'PASSWORD': password,
'HOST': host
}
}
Nainstalujte závislosti.
go get "github.com/go-sql-driver/mysql"
go get "github.com/Azure/azure-sdk-for-go/sdk/azidentity"
go get "github.com/Azure/azure-sdk-for-go/sdk/azcore"
V kódu získejte přístupový token prostřednictvím azidentitya pak se pomocí tokenu připojte k Azure MySQL. Při použití následujícího kódu odkomentujte část fragmentu kódu pro typ ověřování, který chcete použít.
import (
"context"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/policy"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/go-sql-driver/mysql"
)
func main() {
// Uncomment the following lines corresponding to the authentication type you want to use.
// for system-assigned managed identity
// cred, err := azidentity.NewDefaultAzureCredential(nil)
// for user-assigned managed identity
// clientid := os.Getenv("AZURE_MYSQL_CLIENTID")
// azidentity.ManagedIdentityCredentialOptions.ID := clientid
// options := &azidentity.ManagedIdentityCredentialOptions{ID: clientid}
// cred, err := azidentity.NewManagedIdentityCredential(options)
// for service principal
// clientid := os.Getenv("AZURE_MYSQL_CLIENTID")
// tenantid := os.Getenv("AZURE_MYSQL_TENANTID")
// clientsecret := os.Getenv("AZURE_MYSQL_CLIENTSECRET")
// cred, err := azidentity.NewClientSecretCredential(tenantid, clientid, clientsecret, &azidentity.ClientSecretCredentialOptions{})
if err != nil {
}
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
token, err := cred.GetToken(ctx, policy.TokenRequestOptions{
Scopes: []string("https://ossrdbms-aad.database.windows.net/.default"),
})
connectionString := os.Getenv("AZURE_MYSQL_CONNECTIONSTRING") + ";Password=" + token.Token
db, err := sql.Open("mysql", connectionString)
}
Získání přístupového tokenu pomocí @azure/identity informací o databázi Azure MySQL z proměnných prostředí přidaných službou Service Connector Při použití následujícího kódu odkomentujte část fragmentu kódu pro typ ověřování, který chcete použít.
import { DefaultAzureCredential,ClientSecretCredential } from "@azure/identity";
const mysql = require('mysql2');
// Uncomment the following lines corresponding to the authentication type you want to use.
// for system-assigned managed identity
// const credential = new DefaultAzureCredential();
// for user-assigned managed identity
// const clientId = process.env.AZURE_MYSQL_CLIENTID;
// const credential = new DefaultAzureCredential({
// managedIdentityClientId: clientId
// });
// for service principal
// const tenantId = process.env.AZURE_MYSQL_TENANTID;
// const clientId = process.env.AZURE_MYSQL_CLIENTID;
// const clientSecret = process.env.AZURE_MYSQL_CLIENTSECRET;
// const credential = new ClientSecretCredential(tenantId, clientId, clientSecret);
// acquire token
var accessToken = await credential.getToken('https://ossrdbms-aad.database.windows.net/.default');
const connection = mysql.createConnection({
host: process.env.AZURE_MYSQL_HOST,
user: process.env.AZURE_MYSQL_USER,
password: accessToken.token,
database: process.env.AZURE_MYSQL_DATABASE,
port: process.env.AZURE_MYSQL_PORT,
ssl: process.env.AZURE_MYSQL_SSL
});
connection.connect((err) => {
if (err) {
console.error('Error connecting to MySQL database: ' + err.stack);
return;
}
console.log('Connected to MySQL database');
});
V jiných jazycích použijte připojovací řetězec a uživatelské jméno, které Service Connector nastaví na proměnné prostředí pro připojení databáze. Podrobnosti o proměnné prostředí najdete v tématu Integrace služby Azure Database for MySQL s konektorem služby.
V jiných jazycích použijte připojovací řetězec a uživatelské jméno, které Service Connector nastaví na proměnné prostředí pro připojení databáze. Podrobnosti o proměnné prostředí najdete v tématu Integrace služby Azure Database for MySQL s konektorem služby.
V jiných jazycích použijte vlastnosti připojení, které Service Connector nastaví na proměnné prostředí pro připojení databáze. Podrobnosti o proměnné prostředí najdete v tématu Integrace služby Azure Database for MySQL s konektorem služby.
Pro .NET neexistuje modul plug-in ani knihovna, které podporují připojení bez hesla. Přístupový token pro spravovanou identitu nebo instanční objekt můžete získat pomocí klientské knihovny, jako je Azure.Identity. Přístupový token pak můžete použít jako heslo pro připojení k databázi. Při použití následujícího kódu odkomentujte část fragmentu kódu pro typ ověřování, který chcete použít.
using Azure.Core;
using Azure.Identity;
using MySqlConnector;
// Uncomment the following lines corresponding to the authentication type you want to use.
// 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
Do souboru pom.xml přidejte následující závislosti:
Pokud pro aplikaci Spring vytvoříte připojení s možností --client-type springboot, Service Connector nastaví vlastnosti spring.datasource.azure.passwordless-enabledspring.datasource.urla spring.datasource.username azure Spring Apps.
Ověřte se pomocí přístupového tokenu získat prostřednictvím azure-identity knihovny a získejte informace o připojení z proměnné prostředí přidané konektorem service connectoru. Při použití následujícího kódu odkomentujte část fragmentu kódu pro typ ověřování, který chcete použít.
from azure.identity import ManagedIdentityCredential, ClientSecretCredential
import mysql.connector
import os
# Uncomment the following lines corresponding to the authentication type you want to use.
# For system-assigned managed identity.
# cred = ManagedIdentityCredential()
# For user-assigned managed identity.
# managed_identity_client_id = os.getenv('AZURE_MYSQL_CLIENTID')
# cred = ManagedIdentityCredential(client_id=managed_identity_client_id)
# For service principal
# tenant_id = os.getenv('AZURE_MYSQL_TENANTID')
# client_id = os.getenv('AZURE_MYSQL_CLIENTID')
# client_secret = os.getenv('AZURE_MYSQL_CLIENTSECRET')
# cred = ClientSecretCredential(tenant_id=tenant_id, client_id=client_id, client_secret=client_secret)
# acquire token
accessToken = cred.get_token('https://ossrdbms-aad.database.windows.net/.default')
# open connect to Azure MySQL with the access token.
host = os.getenv('AZURE_MYSQL_HOST')
database = os.getenv('AZURE_MYSQL_NAME')
user = os.getenv('AZURE_MYSQL_USER')
password = accessToken.token
cnx = mysql.connector.connect(user=user,
password=password,
host=host,
database=database)
cnx.close()
Nainstalujte závislosti.
pip install azure-identity
Získejte přístupový token prostřednictvím azure-identity knihovny s proměnnými prostředí přidanými konektorem služby Service Connector. Při použití následujícího kódu odkomentujte část fragmentu kódu pro typ ověřování, který chcete použít.
from azure.identity import ManagedIdentityCredential, ClientSecretCredential
import os
# Uncomment the following lines corresponding to the authentication type you want to use.
# system-assigned managed identity
# cred = ManagedIdentityCredential()
# user-assigned managed identity
# managed_identity_client_id = os.getenv('AZURE_MYSQL_CLIENTID')
# cred = ManagedIdentityCredential(client_id=managed_identity_client_id)
# service principal
# tenant_id = os.getenv('AZURE_MYSQL_TENANTID')
# client_id = os.getenv('AZURE_MYSQL_CLIENTID')
# client_secret = os.getenv('AZURE_MYSQL_CLIENTSECRET')
# cred = ClientSecretCredential(tenant_id=tenant_id, client_id=client_id, client_secret=client_secret)
# acquire token
accessToken = cred.get_token('https://ossrdbms-aad.database.windows.net/.default')
V souboru nastavení získejte informace o databázi Azure MySQL z proměnných prostředí přidaných službou Service Connector. Pro přístup k databázi použijte accessToken získané v předchozím kroku.
# in your setting file, eg. settings.py
host = os.getenv('AZURE_MYSQL_HOST')
database = os.getenv('AZURE_MYSQL_NAME')
user = os.getenv('AZURE_MYSQL_USER')
password = accessToken.token # this is accessToken acquired from above step.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': database,
'USER': user,
'PASSWORD': password,
'HOST': host
}
}
Nainstalujte závislosti.
go get "github.com/go-sql-driver/mysql"
go get "github.com/Azure/azure-sdk-for-go/sdk/azidentity"
go get "github.com/Azure/azure-sdk-for-go/sdk/azcore"
V kódu získejte přístupový token prostřednictvím azidentitya pak se pomocí tokenu připojte k Azure MySQL. Při použití následujícího kódu odkomentujte část fragmentu kódu pro typ ověřování, který chcete použít.
import (
"context"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/policy"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/go-sql-driver/mysql"
)
func main() {
// Uncomment the following lines corresponding to the authentication type you want to use.
// for system-assigned managed identity
// cred, err := azidentity.NewDefaultAzureCredential(nil)
// for user-assigned managed identity
// clientid := os.Getenv("AZURE_MYSQL_CLIENTID")
// azidentity.ManagedIdentityCredentialOptions.ID := clientid
// options := &azidentity.ManagedIdentityCredentialOptions{ID: clientid}
// cred, err := azidentity.NewManagedIdentityCredential(options)
// for service principal
// clientid := os.Getenv("AZURE_MYSQL_CLIENTID")
// tenantid := os.Getenv("AZURE_MYSQL_TENANTID")
// clientsecret := os.Getenv("AZURE_MYSQL_CLIENTSECRET")
// cred, err := azidentity.NewClientSecretCredential(tenantid, clientid, clientsecret, &azidentity.ClientSecretCredentialOptions{})
if err != nil {
}
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
token, err := cred.GetToken(ctx, policy.TokenRequestOptions{
Scopes: []string("https://ossrdbms-aad.database.windows.net/.default"),
})
connectionString := os.Getenv("AZURE_MYSQL_CONNECTIONSTRING") + ";Password=" + token.Token
db, err := sql.Open("mysql", connectionString)
}
Získání přístupového tokenu pomocí @azure/identity informací o databázi Azure MySQL z proměnných prostředí přidaných službou Service Connector Při použití následujícího kódu odkomentujte část fragmentu kódu pro typ ověřování, který chcete použít.
import { DefaultAzureCredential,ClientSecretCredential } from "@azure/identity";
const mysql = require('mysql2');
// Uncomment the following lines corresponding to the authentication type you want to use.
// for system-assigned managed identity
// const credential = new DefaultAzureCredential();
// for user-assigned managed identity
// const clientId = process.env.AZURE_MYSQL_CLIENTID;
// const credential = new DefaultAzureCredential({
// managedIdentityClientId: clientId
// });
// for service principal
// const tenantId = process.env.AZURE_MYSQL_TENANTID;
// const clientId = process.env.AZURE_MYSQL_CLIENTID;
// const clientSecret = process.env.AZURE_MYSQL_CLIENTSECRET;
// const credential = new ClientSecretCredential(tenantId, clientId, clientSecret);
// acquire token
var accessToken = await credential.getToken('https://ossrdbms-aad.database.windows.net/.default');
const connection = mysql.createConnection({
host: process.env.AZURE_MYSQL_HOST,
user: process.env.AZURE_MYSQL_USER,
password: accessToken.token,
database: process.env.AZURE_MYSQL_DATABASE,
port: process.env.AZURE_MYSQL_PORT,
ssl: process.env.AZURE_MYSQL_SSL
});
connection.connect((err) => {
if (err) {
console.error('Error connecting to MySQL database: ' + err.stack);
return;
}
console.log('Connected to MySQL database');
});
V jiných jazycích použijte připojovací řetězec a uživatelské jméno, které Service Connector nastaví na proměnné prostředí pro připojení databáze. Podrobnosti o proměnné prostředí najdete v tématu Integrace služby Azure Database for MySQL s konektorem služby.
V jiných jazycích použijte připojovací řetězec a uživatelské jméno, které Service Connector nastaví na proměnné prostředí pro připojení databáze. Podrobnosti o proměnné prostředí najdete v tématu Integrace služby Azure Database for MySQL s konektorem služby.
V jiných jazycích použijte vlastnosti připojení, které Service Connector nastaví na proměnné prostředí pro připojení databáze. Podrobnosti o proměnné prostředí najdete v tématu Integrace služby Azure Database for MySQL s konektorem služby.
Microsoft doporučuje používat nejbezpečnější dostupný tok ověřování. Ověřovací tok popsaný v tomto postupu vyžaduje velmi vysoký stupeň důvěryhodnosti v aplikaci a nese rizika, která nejsou přítomna v jiných tocích. Tento tok byste měli použít jenom v případě, že jiné bezpečnější toky, jako jsou spravované identity, nejsou přijatelné.
Po vytvoření springboot připojení typu klienta služba Service Connector automaticky přidá vlastnosti spring.datasource.url, spring.datasource.username, . spring.datasource.password Aplikace Spring Boot by tedy mohla přidávat boby automaticky.
V kódu získejte připojovací řetězec MySQL z proměnných prostředí přidaných službou Service Connector. Pokud chcete vytvořit šifrované připojení k serveru MySQL přes PROTOKOL SSL, projděte si tyto kroky.
using System;
using System.Data;
using MySql.Data.MySqlClient;
string connectionString = Environment.GetEnvironmentVariable("AZURE_MYSQL_CONNECTIONSTRING");
using (MySqlConnection connection = new MySqlConnection(connectionString))
{
connection.Open();
}
V kódu získejte připojovací řetězec MySQL z proměnných prostředí přidaných službou Service Connector. Pokud chcete vytvořit šifrované připojení k serveru MySQL přes PROTOKOL SSL, projděte si tyto kroky.
Nastavte normální aplikaci Spring App, podrobnější informace v této části. Pokud chcete vytvořit šifrované připojení k serveru MySQL přes PROTOKOL SSL, projděte si tyto kroky.
V kódu získejte informace o připojení MySQL z proměnných prostředí přidaných službou Konektor služby Service Connector. Pokud chcete vytvořit šifrované připojení k serveru MySQL přes PROTOKOL SSL, projděte si tyto kroky.
V souboru nastavení získejte informace o databázi MySQL z proměnných prostředí přidaných službou Service Connector. Pokud chcete vytvořit šifrované připojení k serveru MySQL přes PROTOKOL SSL, projděte si tyto kroky.
V kódu získejte připojovací řetězec MySQL z proměnných prostředí přidaných službou Service Connector. Pokud chcete vytvořit šifrované připojení k serveru MySQL přes PROTOKOL SSL, projděte si tyto kroky.
V kódu získejte informace o připojení MySQL z proměnných prostředí přidaných službou Konektor služby Service Connector. Pokud chcete vytvořit šifrované připojení k serveru MySQL přes PROTOKOL SSL, projděte si tyto kroky.
const mysql = require('mysql2')
const connection = mysql.createConnection({
host: process.env.AZURE_MYSQL_HOST,
user: process.env.AZURE_MYSQL_USER,
password: process.env.AZURE_MYSQL_PASSWORD,
database: process.env.AZURE_MYSQL_DATABASE,
port: Number(process.env.AZURE_MYSQL_PORT) ,
// ssl: process.env.AZURE_MYSQL_SSL
});
connection.connect((err) => {
if (err) {
console.error('Error connecting to MySQL database: ' + err.stack);
return;
}
console.log('Connected to MySQL database.');
});
Nainstalujte závislosti. Postupujte podle pokynů k instalaci MySQLi.
V kódu získejte informace o připojení MySQL z proměnných prostředí přidaných službou Konektor služby Service Connector. Pokud chcete vytvořit šifrované připojení k serveru MySQL přes PROTOKOL SSL, projděte si tyto kroky.
V kódu získejte informace o připojení MySQL z proměnných prostředí přidaných službou Konektor služby Service Connector. Pokud chcete vytvořit šifrované připojení k serveru MySQL přes PROTOKOL SSL, projděte si tyto kroky.
V jiných jazycích použijte vlastnosti připojení, které Service Connector nastaví na proměnné prostředí pro připojení databáze. Podrobnosti o proměnné prostředí najdete v tématu Integrace služby Azure Database for MySQL s konektorem služby.
Pro .NET neexistuje modul plug-in ani knihovna, které podporují připojení bez hesla. Přístupový token pro spravovanou identitu nebo instanční objekt můžete získat pomocí klientské knihovny, jako je Azure.Identity. Přístupový token pak můžete použít jako heslo pro připojení k databázi. Při použití následujícího kódu odkomentujte část fragmentu kódu pro typ ověřování, který chcete použít.
using Azure.Core;
using Azure.Identity;
using MySqlConnector;
// Uncomment the following lines corresponding to the authentication type you want to use.
// 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
Do souboru pom.xml přidejte následující závislosti:
Pokud pro aplikaci Spring vytvoříte připojení s možností --client-type springboot, Service Connector nastaví vlastnosti spring.datasource.azure.passwordless-enabledspring.datasource.urla spring.datasource.username azure Spring Apps.
Ověřte se pomocí přístupového tokenu získat prostřednictvím azure-identity knihovny a získejte informace o připojení z proměnné prostředí přidané konektorem service connectoru. Při použití následujícího kódu odkomentujte část fragmentu kódu pro typ ověřování, který chcete použít.
from azure.identity import ManagedIdentityCredential, ClientSecretCredential
import mysql.connector
import os
# Uncomment the following lines corresponding to the authentication type you want to use.
# For system-assigned managed identity.
# cred = ManagedIdentityCredential()
# For user-assigned managed identity.
# managed_identity_client_id = os.getenv('AZURE_MYSQL_CLIENTID')
# cred = ManagedIdentityCredential(client_id=managed_identity_client_id)
# For service principal
# tenant_id = os.getenv('AZURE_MYSQL_TENANTID')
# client_id = os.getenv('AZURE_MYSQL_CLIENTID')
# client_secret = os.getenv('AZURE_MYSQL_CLIENTSECRET')
# cred = ClientSecretCredential(tenant_id=tenant_id, client_id=client_id, client_secret=client_secret)
# acquire token
accessToken = cred.get_token('https://ossrdbms-aad.database.windows.net/.default')
# open connect to Azure MySQL with the access token.
host = os.getenv('AZURE_MYSQL_HOST')
database = os.getenv('AZURE_MYSQL_NAME')
user = os.getenv('AZURE_MYSQL_USER')
password = accessToken.token
cnx = mysql.connector.connect(user=user,
password=password,
host=host,
database=database)
cnx.close()
Nainstalujte závislosti.
pip install azure-identity
Získejte přístupový token prostřednictvím azure-identity knihovny s proměnnými prostředí přidanými konektorem služby Service Connector. Při použití následujícího kódu odkomentujte část fragmentu kódu pro typ ověřování, který chcete použít.
from azure.identity import ManagedIdentityCredential, ClientSecretCredential
import os
# Uncomment the following lines corresponding to the authentication type you want to use.
# system-assigned managed identity
# cred = ManagedIdentityCredential()
# user-assigned managed identity
# managed_identity_client_id = os.getenv('AZURE_MYSQL_CLIENTID')
# cred = ManagedIdentityCredential(client_id=managed_identity_client_id)
# service principal
# tenant_id = os.getenv('AZURE_MYSQL_TENANTID')
# client_id = os.getenv('AZURE_MYSQL_CLIENTID')
# client_secret = os.getenv('AZURE_MYSQL_CLIENTSECRET')
# cred = ClientSecretCredential(tenant_id=tenant_id, client_id=client_id, client_secret=client_secret)
# acquire token
accessToken = cred.get_token('https://ossrdbms-aad.database.windows.net/.default')
V souboru nastavení získejte informace o databázi Azure MySQL z proměnných prostředí přidaných službou Service Connector. Pro přístup k databázi použijte accessToken získané v předchozím kroku.
# in your setting file, eg. settings.py
host = os.getenv('AZURE_MYSQL_HOST')
database = os.getenv('AZURE_MYSQL_NAME')
user = os.getenv('AZURE_MYSQL_USER')
password = accessToken.token # this is accessToken acquired from above step.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': database,
'USER': user,
'PASSWORD': password,
'HOST': host
}
}
Nainstalujte závislosti.
go get "github.com/go-sql-driver/mysql"
go get "github.com/Azure/azure-sdk-for-go/sdk/azidentity"
go get "github.com/Azure/azure-sdk-for-go/sdk/azcore"
V kódu získejte přístupový token prostřednictvím azidentitya pak se pomocí tokenu připojte k Azure MySQL. Při použití následujícího kódu odkomentujte část fragmentu kódu pro typ ověřování, který chcete použít.
import (
"context"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/policy"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/go-sql-driver/mysql"
)
func main() {
// Uncomment the following lines corresponding to the authentication type you want to use.
// for system-assigned managed identity
// cred, err := azidentity.NewDefaultAzureCredential(nil)
// for user-assigned managed identity
// clientid := os.Getenv("AZURE_MYSQL_CLIENTID")
// azidentity.ManagedIdentityCredentialOptions.ID := clientid
// options := &azidentity.ManagedIdentityCredentialOptions{ID: clientid}
// cred, err := azidentity.NewManagedIdentityCredential(options)
// for service principal
// clientid := os.Getenv("AZURE_MYSQL_CLIENTID")
// tenantid := os.Getenv("AZURE_MYSQL_TENANTID")
// clientsecret := os.Getenv("AZURE_MYSQL_CLIENTSECRET")
// cred, err := azidentity.NewClientSecretCredential(tenantid, clientid, clientsecret, &azidentity.ClientSecretCredentialOptions{})
if err != nil {
}
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
token, err := cred.GetToken(ctx, policy.TokenRequestOptions{
Scopes: []string("https://ossrdbms-aad.database.windows.net/.default"),
})
connectionString := os.Getenv("AZURE_MYSQL_CONNECTIONSTRING") + ";Password=" + token.Token
db, err := sql.Open("mysql", connectionString)
}
Získání přístupového tokenu pomocí @azure/identity informací o databázi Azure MySQL z proměnných prostředí přidaných službou Service Connector Při použití následujícího kódu odkomentujte část fragmentu kódu pro typ ověřování, který chcete použít.
import { DefaultAzureCredential,ClientSecretCredential } from "@azure/identity";
const mysql = require('mysql2');
// Uncomment the following lines corresponding to the authentication type you want to use.
// for system-assigned managed identity
// const credential = new DefaultAzureCredential();
// for user-assigned managed identity
// const clientId = process.env.AZURE_MYSQL_CLIENTID;
// const credential = new DefaultAzureCredential({
// managedIdentityClientId: clientId
// });
// for service principal
// const tenantId = process.env.AZURE_MYSQL_TENANTID;
// const clientId = process.env.AZURE_MYSQL_CLIENTID;
// const clientSecret = process.env.AZURE_MYSQL_CLIENTSECRET;
// const credential = new ClientSecretCredential(tenantId, clientId, clientSecret);
// acquire token
var accessToken = await credential.getToken('https://ossrdbms-aad.database.windows.net/.default');
const connection = mysql.createConnection({
host: process.env.AZURE_MYSQL_HOST,
user: process.env.AZURE_MYSQL_USER,
password: accessToken.token,
database: process.env.AZURE_MYSQL_DATABASE,
port: process.env.AZURE_MYSQL_PORT,
ssl: process.env.AZURE_MYSQL_SSL
});
connection.connect((err) => {
if (err) {
console.error('Error connecting to MySQL database: ' + err.stack);
return;
}
console.log('Connected to MySQL database');
});
V jiných jazycích použijte připojovací řetězec a uživatelské jméno, které Service Connector nastaví na proměnné prostředí pro připojení databáze. Podrobnosti o proměnné prostředí najdete v tématu Integrace služby Azure Database for MySQL s konektorem služby.
V jiných jazycích použijte připojovací řetězec a uživatelské jméno, které Service Connector nastaví na proměnné prostředí pro připojení databáze. Podrobnosti o proměnné prostředí najdete v tématu Integrace služby Azure Database for MySQL s konektorem služby.
V jiných jazycích použijte vlastnosti připojení, které Service Connector nastaví na proměnné prostředí pro připojení databáze. Podrobnosti o proměnné prostředí najdete v tématu Integrace služby Azure Database for MySQL s konektorem služby.