Integrera Azure Database for MySQL med Service Connector
Artikel
Den här sidan visar autentiseringsmetoder och klienter som stöds och visar exempelkod som du kan använda för att ansluta Azure Database for MySQL – flexibel server till andra molntjänster med hjälp av Service Connector. På den här sidan visas även standardnamn och värden för miljövariabler (eller Spring Boot-konfiguration) som du får när du skapar tjänstanslutningen.
Viktigt!
Azure Database for MySQL – enskild server är på väg att dras tillbaka. Vi rekommenderar starkt att du uppgraderar till en flexibel Azure Database for MySQL-server. Mer information om hur du migrerar till en flexibel Azure Database for MySQL-server finns i Vad händer med Azure Database for MySQL – enskild server?
Beräkningstjänster som stöds
Service Connector kan användas för att ansluta följande beräkningstjänster till Azure Database for MySQL:
Azure App Service
Azure Container Apps
Azure Functions
Azure Kubernetes Service (AKS)
Azure Spring Apps
Autentiseringstyper och klienttyper som stöds
Tabellen nedan visar vilka kombinationer av autentiseringsmetoder och klienter som stöds för att ansluta beräkningstjänsten till Azure Database for MySQL med hjälp av Service Connector. Ett "Ja" anger att kombinationen stöds, medan ett "Nej" anger att den inte stöds.
Klienttyp
Systemtilldelad hanterad identitet
Användartilldelad hanterad identitet
Hemlighet/anslutningssträng
Tjänstens huvudnamn
.NET
Ja
Ja
Ja
Ja
Go (go-sql-driver för mysql)
Ja
Ja
Ja
Ja
Java (JDBC)
Ja
Ja
Ja
Ja
Java – Spring Boot (JDBC)
Ja
Ja
Ja
Ja
Node.js (mysql)
Ja
Ja
Ja
Ja
Python (mysql-connector-python)
Ja
Ja
Ja
Ja
Python-Django
Ja
Ja
Ja
Ja
PHP (MySQLi)
Ja
Ja
Ja
Ja
Ruby (mysql2)
Ja
Ja
Ja
Ja
None
Ja
Ja
Ja
Ja
Den här tabellen anger att alla kombinationer av klienttyper och autentiseringsmetoder i tabellen stöds. Alla klienttyper kan använda någon av autentiseringsmetoderna för att ansluta till Azure Database for MySQL med hjälp av Service Connector.
Kommentar
Systemtilldelad hanterad identitet, användartilldelad hanterad identitet och tjänstens huvudnamn stöds endast i Azure CLI.
Standardnamn för miljövariabler eller programegenskaper och exempelkod
Referera till anslutningsinformationen och exempelkoden i följande tabeller, beroende på anslutningens autentiseringstyp och klienttyp, för att ansluta beräkningstjänster till Azure Database for MySQL. Mer information om namngivningskonventioner finns i artikeln interna serviceanslutningsprogram .
För .NET finns det inget plugin-program eller bibliotek som stöder lösenordslösa anslutningar. Du kan hämta en åtkomsttoken för den hanterade identiteten eller tjänstens huvudnamn med hjälp av klientbibliotek som Azure.Identity. Sedan kan du använda åtkomsttoken som lösenord för att ansluta till databasen. När du använder koden nedan avkommentarer du delen av kodfragmentet för den autentiseringstyp som du vill använda.
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
För ett Spring-program anger Service Connector egenskaperna spring.datasource.azure.passwordless-enabled, spring.datasource.urloch spring.datasource.username till Azure Spring Apps om du skapar en anslutning med alternativet --client-type springboot.
Autentisera med åtkomsttoken hämta via azure-identity biblioteket och hämta anslutningsinformation från miljövariabeln som lagts till av Service Connector. När du använder koden nedan avkommentarer du delen av kodfragmentet för den autentiseringstyp som du vill använda.
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()
Installera beroenden.
pip install azure-identity
Hämta åtkomsttoken via azure-identity biblioteket med miljövariablerna som lagts till av Service Connector. När du använder koden nedan avkommentarer du delen av kodfragmentet för den autentiseringstyp som du vill använda.
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')
I inställningsfilen hämtar du Azure MySQL-databasinformation från miljövariabler som lagts till av Service Connector-tjänsten. Använd accessToken hämtad i föregående steg för att komma åt databasen.
# 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
}
}
Installera beroenden.
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"
I kod hämtar du åtkomsttoken via azidentityoch ansluter sedan till Azure MySQL med token. När du använder koden nedan avkommentarer du delen av kodfragmentet för den autentiseringstyp som du vill använda.
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)
}
Hämta åtkomsttoken med hjälp av @azure/identity och Azure MySQL-databasinformation från miljövariabler som lagts till av Service Connector-tjänsten. När du använder koden nedan avkommentarer du delen av kodfragmentet för den autentiseringstyp som du vill använda.
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');
});
För andra språk använder du anslutningssträng och användarnamnet som Service Connector anger till miljövariablerna för att ansluta databasen. Information om miljövariabler finns i Integrera Azure Database for MySQL med Service Connector.
För andra språk använder du anslutningssträng och användarnamnet som Service Connector anger till miljövariablerna för att ansluta databasen. Information om miljövariabler finns i Integrera Azure Database for MySQL med Service Connector.
För andra språk använder du de anslutningsegenskaper som Service Connector anger för miljövariablerna för att ansluta databasen. Information om miljövariabler finns i Integrera Azure Database for MySQL med Service Connector.
För .NET finns det inget plugin-program eller bibliotek som stöder lösenordslösa anslutningar. Du kan hämta en åtkomsttoken för den hanterade identiteten eller tjänstens huvudnamn med hjälp av klientbibliotek som Azure.Identity. Sedan kan du använda åtkomsttoken som lösenord för att ansluta till databasen. När du använder koden nedan avkommentarer du delen av kodfragmentet för den autentiseringstyp som du vill använda.
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
För ett Spring-program anger Service Connector egenskaperna spring.datasource.azure.passwordless-enabled, spring.datasource.urloch spring.datasource.username till Azure Spring Apps om du skapar en anslutning med alternativet --client-type springboot.
Autentisera med åtkomsttoken hämta via azure-identity biblioteket och hämta anslutningsinformation från miljövariabeln som lagts till av Service Connector. När du använder koden nedan avkommentarer du delen av kodfragmentet för den autentiseringstyp som du vill använda.
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()
Installera beroenden.
pip install azure-identity
Hämta åtkomsttoken via azure-identity biblioteket med miljövariablerna som lagts till av Service Connector. När du använder koden nedan avkommentarer du delen av kodfragmentet för den autentiseringstyp som du vill använda.
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')
I inställningsfilen hämtar du Azure MySQL-databasinformation från miljövariabler som lagts till av Service Connector-tjänsten. Använd accessToken hämtad i föregående steg för att komma åt databasen.
# 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
}
}
Installera beroenden.
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"
I kod hämtar du åtkomsttoken via azidentityoch ansluter sedan till Azure MySQL med token. När du använder koden nedan avkommentarer du delen av kodfragmentet för den autentiseringstyp som du vill använda.
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)
}
Hämta åtkomsttoken med hjälp av @azure/identity och Azure MySQL-databasinformation från miljövariabler som lagts till av Service Connector-tjänsten. När du använder koden nedan avkommentarer du delen av kodfragmentet för den autentiseringstyp som du vill använda.
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');
});
För andra språk använder du anslutningssträng och användarnamnet som Service Connector anger till miljövariablerna för att ansluta databasen. Information om miljövariabler finns i Integrera Azure Database for MySQL med Service Connector.
För andra språk använder du anslutningssträng och användarnamnet som Service Connector anger till miljövariablerna för att ansluta databasen. Information om miljövariabler finns i Integrera Azure Database for MySQL med Service Connector.
För andra språk använder du de anslutningsegenskaper som Service Connector anger för miljövariablerna för att ansluta databasen. Information om miljövariabler finns i Integrera Azure Database for MySQL med Service Connector.
Microsoft rekommenderar att du använder det säkraste tillgängliga autentiseringsflödet. Det autentiseringsflöde som beskrivs i den här proceduren kräver mycket stort förtroende för programmet och medför risker som inte finns i andra flöden. Du bör bara använda det här flödet när andra säkrare flöden, till exempel hanterade identiteter, inte är livskraftiga.
När du har skapat en springboot klienttypsanslutning lägger Service Connector-tjänsten automatiskt till egenskaperna spring.datasource.url, , spring.datasource.usernamespring.datasource.password. Så Spring boot-programmet kan lägga till bönor automatiskt.
I kod hämtar du MySQL-anslutningssträng från miljövariabler som lagts till av Service Connector-tjänsten. Information om hur du upprättar krypterad anslutning till MySQL-servern via SSL finns i de här stegen.
using System;
using System.Data;
using MySql.Data.MySqlClient;
string connectionString = Environment.GetEnvironmentVariable("AZURE_MYSQL_CONNECTIONSTRING");
using (MySqlConnection connection = new MySqlConnection(connectionString))
{
connection.Open();
}
I kod hämtar du MySQL-anslutningssträng från miljövariabler som lagts till av Service Connector-tjänsten. Information om hur du upprättar krypterad anslutning till MySQL-servern via SSL finns i de här stegen.
Konfigurera ett vanligt Spring App-program, mer information i det här avsnittet. Information om hur du upprättar krypterad anslutning till MySQL-servern via SSL finns i de här stegen.
I kod hämtar du MySQL-anslutningsinformation från miljövariabler som lagts till av Service Connector-tjänsten. Information om hur du upprättar krypterad anslutning till MySQL-servern via SSL finns i de här stegen.
Hämta MySQL-databasinformation från miljövariabler som lagts till av Service Connector-tjänsten i inställningsfilen. Information om hur du upprättar krypterad anslutning till MySQL-servern via SSL finns i de här stegen.
I kod hämtar du MySQL-anslutningssträng från miljövariabler som lagts till av Service Connector-tjänsten. Information om hur du upprättar krypterad anslutning till MySQL-servern via SSL finns i de här stegen.
I kod hämtar du MySQL-anslutningsinformation från miljövariabler som lagts till av Service Connector-tjänsten. Information om hur du upprättar krypterad anslutning till MySQL-servern via SSL finns i de här stegen.
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.');
});
I kod hämtar du MySQL-anslutningsinformation från miljövariabler som lagts till av Service Connector-tjänsten. Information om hur du upprättar krypterad anslutning till MySQL-servern via SSL finns i de här stegen.
I kod hämtar du MySQL-anslutningsinformation från miljövariabler som lagts till av Service Connector-tjänsten. Information om hur du upprättar krypterad anslutning till MySQL-servern via SSL finns i de här stegen.
För andra språk använder du de anslutningsegenskaper som Service Connector anger för miljövariablerna för att ansluta databasen. Information om miljövariabler finns i Integrera Azure Database for MySQL med Service Connector.
För .NET finns det inget plugin-program eller bibliotek som stöder lösenordslösa anslutningar. Du kan hämta en åtkomsttoken för den hanterade identiteten eller tjänstens huvudnamn med hjälp av klientbibliotek som Azure.Identity. Sedan kan du använda åtkomsttoken som lösenord för att ansluta till databasen. När du använder koden nedan avkommentarer du delen av kodfragmentet för den autentiseringstyp som du vill använda.
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
För ett Spring-program anger Service Connector egenskaperna spring.datasource.azure.passwordless-enabled, spring.datasource.urloch spring.datasource.username till Azure Spring Apps om du skapar en anslutning med alternativet --client-type springboot.
Autentisera med åtkomsttoken hämta via azure-identity biblioteket och hämta anslutningsinformation från miljövariabeln som lagts till av Service Connector. När du använder koden nedan avkommentarer du delen av kodfragmentet för den autentiseringstyp som du vill använda.
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()
Installera beroenden.
pip install azure-identity
Hämta åtkomsttoken via azure-identity biblioteket med miljövariablerna som lagts till av Service Connector. När du använder koden nedan avkommentarer du delen av kodfragmentet för den autentiseringstyp som du vill använda.
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')
I inställningsfilen hämtar du Azure MySQL-databasinformation från miljövariabler som lagts till av Service Connector-tjänsten. Använd accessToken hämtad i föregående steg för att komma åt databasen.
# 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
}
}
Installera beroenden.
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"
I kod hämtar du åtkomsttoken via azidentityoch ansluter sedan till Azure MySQL med token. När du använder koden nedan avkommentarer du delen av kodfragmentet för den autentiseringstyp som du vill använda.
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)
}
Hämta åtkomsttoken med hjälp av @azure/identity och Azure MySQL-databasinformation från miljövariabler som lagts till av Service Connector-tjänsten. När du använder koden nedan avkommentarer du delen av kodfragmentet för den autentiseringstyp som du vill använda.
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');
});
För andra språk använder du anslutningssträng och användarnamnet som Service Connector anger till miljövariablerna för att ansluta databasen. Information om miljövariabler finns i Integrera Azure Database for MySQL med Service Connector.
För andra språk använder du anslutningssträng och användarnamnet som Service Connector anger till miljövariablerna för att ansluta databasen. Information om miljövariabler finns i Integrera Azure Database for MySQL med Service Connector.
För andra språk använder du de anslutningsegenskaper som Service Connector anger för miljövariablerna för att ansluta databasen. Information om miljövariabler finns i Integrera Azure Database for MySQL med Service Connector.