MySQL için Azure Veritabanı Service Connector ile tümleştirme
Makale
Bu sayfada desteklenen kimlik doğrulama yöntemleri ve istemcileri gösterilir ve Hizmet Bağlayıcısı'nı kullanarak MySQL için Azure Veritabanı Esnek Sunucu'ya diğer bulut hizmetlerine bağlanmak için kullanabileceğiniz örnek kod gösterilir. Bu sayfada, hizmet bağlantısını oluştururken elde ettiğiniz varsayılan ortam değişkeni adları ve değerleri (veya Spring Boot yapılandırması) da gösterilir.
Önemli
MySQL için Azure Veritabanı tek sunucu kullanımdan kaldırma yolundadır. Esnek MySQL için Azure Veritabanı sunucuya yükseltmenizi kesinlikle öneririz. MySQL için Azure Veritabanı esnek sunucuya geçiş hakkında daha fazla bilgi için bkz. MySQL için Azure Veritabanı Tek Sunucu'ya neler oluyor?
Desteklenen işlem hizmetleri
Hizmet Bağlayıcısı, aşağıdaki işlem hizmetlerini MySQL için Azure Veritabanı bağlamak için kullanılabilir:
Azure App Service
Azure Container Apps
Azure İşlevleri
Azure Kubernetes Service (AKS)
Azure Spring Apps
Desteklenen kimlik doğrulama türleri ve istemci türleri
Aşağıdaki tabloda, işlem hizmetinizi Service Connector kullanarak MySQL için Azure Veritabanı bağlamak için hangi kimlik doğrulama yöntemlerinin ve istemcilerinin desteklendiği gösterilmektedir. "Evet", birleşimin desteklendiğini, "Hayır" ise bunun desteklenmediğini gösterir.
İstemci türü
Sistem tarafından atanan yönetilen kimlik
Kullanıcı tarafından atanan yönetilen kimlik
Gizli dizi/bağlantı dizesi
Hizmet sorumlusu
.NET
Yes
Evet
Evet
Yes
Go (mysql için go-sql-driver)
Yes
Evet
Evet
Yes
Java (JDBC)
Yes
Evet
Evet
Yes
Java - Spring Boot (JDBC)
Yes
Evet
Evet
Yes
Node.js (mysql)
Yes
Evet
Evet
Yes
Python (mysql-connector-python)
Yes
Evet
Evet
Yes
Python-Django
Yes
Evet
Evet
Yes
PHP (MySQLi)
Yes
Evet
Evet
Yes
Ruby (mysql2)
Yes
Evet
Evet
Yes
Hiçbiri
Yes
Evet
Evet
Yes
Bu tablo, tablodaki tüm istemci türlerinin ve kimlik doğrulama yöntemlerinin bileşimlerinin desteklendiğini gösterir. Tüm istemci türleri, Service Connector kullanarak MySQL için Azure Veritabanı bağlanmak için herhangi bir kimlik doğrulama yöntemini kullanabilir.
Not
Sistem tarafından atanan yönetilen kimlik, Kullanıcı tarafından atanan yönetilen kimlik ve Hizmet sorumlusu yalnızca Azure CLI'da desteklenir.
Varsayılan ortam değişkeni adları veya uygulama özellikleri ve örnek kod
İşlem hizmetlerini MySQL için Azure Veritabanı bağlamak için bağlantınızın kimlik doğrulama türüne ve istemci türüne göre aşağıdaki tablolardaki bağlantı ayrıntılarına ve örnek koda başvurun. Adlandırma kuralları hakkında daha fazla bilgi için Hizmet Bağlayıcısı iç bilgileri makalesine bakın.
.NET için parolasız bağlantıları destekleyen bir eklenti veya kitaplık yoktur. Azure.Identity gibi istemci kitaplığını kullanarak yönetilen kimlik veya hizmet sorumlusu için erişim belirteci alabilirsiniz. Ardından veritabanına bağlanmak için parola olarak erişim belirtecini kullanabilirsiniz. Aşağıdaki kodu kullanırken, kullanmak istediğiniz kimlik doğrulama türü için kod parçacığının bölümünü açıklamayı kaldırın.
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
pom.xml dosyanıza aşağıdaki bağımlılıkları ekleyin:
Spring uygulaması için seçeneğiyle --client-type springbootbağlantı oluşturursanız, Hizmet Bağlayıcısı , spring.datasource.urlve spring.datasource.username özelliklerini spring.datasource.azure.passwordless-enabledAzure Spring Apps olarak ayarlar.
Erişim belirteci ile kimlik doğrulaması yapın kitaplık aracılığıyla azure-identity alın ve Service Connector tarafından eklenen ortam değişkeninden bağlantı bilgilerini alın. Aşağıdaki kodu kullanırken, kullanmak istediğiniz kimlik doğrulama türü için kod parçacığının bölümünü açıklamayı kaldırın.
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()
Bağımlılıkları yükleyin.
pip install azure-identity
Hizmet Bağlayıcısı tarafından eklenen ortam değişkenleriyle kitaplık aracılığıyla azure-identity erişim belirteci alın. Aşağıdaki kodu kullanırken, kullanmak istediğiniz kimlik doğrulama türü için kod parçacığının bölümünü açıklamayı kaldırın.
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')
Dosya ayarlama bölümünde, Service Connector hizmeti tarafından eklenen ortam değişkenlerinden Azure MySQL veritabanı bilgilerini alın. Veritabanına erişmek için önceki adımda alınan öğesini kullanın accessToken .
# 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
}
}
Bağımlılıkları yükleyin.
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"
Kodda, aracılığıyla azidentityerişim belirteci alın ve ardından belirteçle Azure MySQL'e bağlanın. Aşağıdaki kodu kullanırken, kullanmak istediğiniz kimlik doğrulama türü için kod parçacığının bölümünü açıklamayı kaldırın.
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)
}
Service Connector hizmeti tarafından eklenen ortam değişkenlerinden ve Azure MySQL veritabanı bilgilerini kullanarak @azure/identity erişim belirteci alın. Aşağıdaki kodu kullanırken, kullanmak istediğiniz kimlik doğrulama türü için kod parçacığının bölümünü açıklamayı kaldırın.
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');
});
Diğer diller için, Service Connector'ın veritabanını bağlamak için ortam değişkenlerine ayarlayıp ayarlayıp bağlantı dizesi ve kullanıcı adını kullanın. Ortam değişkeni ayrıntıları için bkz. MySQL için Azure Veritabanı Service Connector ile tümleştirme.
Diğer diller için, Service Connector'ın veritabanını bağlamak için ortam değişkenlerine ayarlayıp ayarlayıp bağlantı dizesi ve kullanıcı adını kullanın. Ortam değişkeni ayrıntıları için bkz. MySQL için Azure Veritabanı Service Connector ile tümleştirme.
Diğer diller için, Service Connector'ın veritabanını bağlamak için ortam değişkenlerine ayarlayıp ayarlayacak bağlantı özelliklerini kullanın. Ortam değişkeni ayrıntıları için bkz. MySQL için Azure Veritabanı Service Connector ile tümleştirme.
Daha fazla kod örneği için bkz . Yönetilen kimlik kullanarak gizli diziler olmadan App Service'ten Azure veritabanlarına bağlanma.
.NET için parolasız bağlantıları destekleyen bir eklenti veya kitaplık yoktur. Azure.Identity gibi istemci kitaplığını kullanarak yönetilen kimlik veya hizmet sorumlusu için erişim belirteci alabilirsiniz. Ardından veritabanına bağlanmak için parola olarak erişim belirtecini kullanabilirsiniz. Aşağıdaki kodu kullanırken, kullanmak istediğiniz kimlik doğrulama türü için kod parçacığının bölümünü açıklamayı kaldırın.
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
pom.xml dosyanıza aşağıdaki bağımlılıkları ekleyin:
Spring uygulaması için seçeneğiyle --client-type springbootbağlantı oluşturursanız, Hizmet Bağlayıcısı , spring.datasource.urlve spring.datasource.username özelliklerini spring.datasource.azure.passwordless-enabledAzure Spring Apps olarak ayarlar.
Erişim belirteci ile kimlik doğrulaması yapın kitaplık aracılığıyla azure-identity alın ve Service Connector tarafından eklenen ortam değişkeninden bağlantı bilgilerini alın. Aşağıdaki kodu kullanırken, kullanmak istediğiniz kimlik doğrulama türü için kod parçacığının bölümünü açıklamayı kaldırın.
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()
Bağımlılıkları yükleyin.
pip install azure-identity
Hizmet Bağlayıcısı tarafından eklenen ortam değişkenleriyle kitaplık aracılığıyla azure-identity erişim belirteci alın. Aşağıdaki kodu kullanırken, kullanmak istediğiniz kimlik doğrulama türü için kod parçacığının bölümünü açıklamayı kaldırın.
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')
Dosya ayarlama bölümünde, Service Connector hizmeti tarafından eklenen ortam değişkenlerinden Azure MySQL veritabanı bilgilerini alın. Veritabanına erişmek için önceki adımda alınan öğesini kullanın accessToken .
# 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
}
}
Bağımlılıkları yükleyin.
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"
Kodda, aracılığıyla azidentityerişim belirteci alın ve ardından belirteçle Azure MySQL'e bağlanın. Aşağıdaki kodu kullanırken, kullanmak istediğiniz kimlik doğrulama türü için kod parçacığının bölümünü açıklamayı kaldırın.
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)
}
Service Connector hizmeti tarafından eklenen ortam değişkenlerinden ve Azure MySQL veritabanı bilgilerini kullanarak @azure/identity erişim belirteci alın. Aşağıdaki kodu kullanırken, kullanmak istediğiniz kimlik doğrulama türü için kod parçacığının bölümünü açıklamayı kaldırın.
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');
});
Diğer diller için, Service Connector'ın veritabanını bağlamak için ortam değişkenlerine ayarlayıp ayarlayıp bağlantı dizesi ve kullanıcı adını kullanın. Ortam değişkeni ayrıntıları için bkz. MySQL için Azure Veritabanı Service Connector ile tümleştirme.
Diğer diller için, Service Connector'ın veritabanını bağlamak için ortam değişkenlerine ayarlayıp ayarlayıp bağlantı dizesi ve kullanıcı adını kullanın. Ortam değişkeni ayrıntıları için bkz. MySQL için Azure Veritabanı Service Connector ile tümleştirme.
Diğer diller için, Service Connector'ın veritabanını bağlamak için ortam değişkenlerine ayarlayıp ayarlayacak bağlantı özelliklerini kullanın. Ortam değişkeni ayrıntıları için bkz. MySQL için Azure Veritabanı Service Connector ile tümleştirme.
Daha fazla kod örneği için bkz . Yönetilen kimlik kullanarak gizli diziler olmadan App Service'ten Azure veritabanlarına bağlanma.
Bağlantı Dizesi
Uyarı
Microsoft, kullanılabilir en güvenli kimlik doğrulama akışını kullanmanızı önerir. Bu yordamda açıklanan kimlik doğrulama akışı, uygulamada çok yüksek düzeyde güven gerektirir ve diğer akışlarda mevcut olmayan riskleri taşır. Bu akışı yalnızca yönetilen kimlikler gibi diğer daha güvenli akışlar uygun olmadığında kullanmalısınız.
İstemci türü bağlantısı oluşturulduktan springboot sonra, Service Connector hizmeti otomatik olarak , , spring.datasource.usernamespring.datasource.passwordözelliklerini spring.datasource.urlekler. Bu nedenle Spring boot uygulaması otomatik olarak fasulye ekleyebilir.
Bağımlılıkları yükleyin. Bağlayıcıyı/NET MySQL'i yüklemek için yönergeleri izleyin
Kodda, Service Connector hizmeti tarafından eklenen ortam değişkenlerinden MySQL bağlantı dizesi alın. SSL üzerinden MySQL sunucusuna şifreli bağlantı kurmak için bu adımlara bakın.
using System;
using System.Data;
using MySql.Data.MySqlClient;
string connectionString = Environment.GetEnvironmentVariable("AZURE_MYSQL_CONNECTIONSTRING");
using (MySqlConnection connection = new MySqlConnection(connectionString))
{
connection.Open();
}
Bağımlılıkları yükleyin. Bağlayıcı/J'yi yüklemek için yönergeleri izleyin.
Kodda, Service Connector hizmeti tarafından eklenen ortam değişkenlerinden MySQL bağlantı dizesi alın. SSL üzerinden MySQL sunucusuna şifreli bağlantı kurmak için bu adımlara bakın.
Bu bölümde daha ayrıntılı olarak, normal Spring App uygulamasını ayarlayın. SSL üzerinden MySQL sunucusuna şifreli bağlantı kurmak için bu adımlara bakın.
Bağımlılıkları yükleyin. Bağlayıcı/Python'ı yüklemek için yönergeleri izleyin.
Kodda, Service Connector hizmeti tarafından eklenen ortam değişkenlerinden MySQL bağlantı bilgilerini alın. SSL üzerinden MySQL sunucusuna şifreli bağlantı kurmak için bu adımlara bakın.
Dosya ayarlama bölümünde, Service Connector hizmeti tarafından eklenen ortam değişkenlerinden MySQL veritabanı bilgilerini alın. SSL üzerinden MySQL sunucusuna şifreli bağlantı kurmak için bu adımlara bakın.
Kodda, Service Connector hizmeti tarafından eklenen ortam değişkenlerinden MySQL bağlantı dizesi alın. SSL üzerinden MySQL sunucusuna şifreli bağlantı kurmak için bu adımlara bakın.
Kodda, Service Connector hizmeti tarafından eklenen ortam değişkenlerinden MySQL bağlantı bilgilerini alın. SSL üzerinden MySQL sunucusuna şifreli bağlantı kurmak için bu adımlara bakın.
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.');
});
Bağımlılıkları yükleyin. MySQLi'yi yüklemek için kılavuzu izleyin.
Kodda, Service Connector hizmeti tarafından eklenen ortam değişkenlerinden MySQL bağlantı bilgilerini alın. SSL üzerinden MySQL sunucusuna şifreli bağlantı kurmak için bu adımlara bakın.
Kodda, Service Connector hizmeti tarafından eklenen ortam değişkenlerinden MySQL bağlantı bilgilerini alın. SSL üzerinden MySQL sunucusuna şifreli bağlantı kurmak için bu adımlara bakın.
Diğer diller için, Service Connector'ın veritabanını bağlamak için ortam değişkenlerine ayarlayıp ayarlayacak bağlantı özelliklerini kullanın. Ortam değişkeni ayrıntıları için bkz. MySQL için Azure Veritabanı Service Connector ile tümleştirme.
.NET için parolasız bağlantıları destekleyen bir eklenti veya kitaplık yoktur. Azure.Identity gibi istemci kitaplığını kullanarak yönetilen kimlik veya hizmet sorumlusu için erişim belirteci alabilirsiniz. Ardından veritabanına bağlanmak için parola olarak erişim belirtecini kullanabilirsiniz. Aşağıdaki kodu kullanırken, kullanmak istediğiniz kimlik doğrulama türü için kod parçacığının bölümünü açıklamayı kaldırın.
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
pom.xml dosyanıza aşağıdaki bağımlılıkları ekleyin:
Spring uygulaması için seçeneğiyle --client-type springbootbağlantı oluşturursanız, Hizmet Bağlayıcısı , spring.datasource.urlve spring.datasource.username özelliklerini spring.datasource.azure.passwordless-enabledAzure Spring Apps olarak ayarlar.
Erişim belirteci ile kimlik doğrulaması yapın kitaplık aracılığıyla azure-identity alın ve Service Connector tarafından eklenen ortam değişkeninden bağlantı bilgilerini alın. Aşağıdaki kodu kullanırken, kullanmak istediğiniz kimlik doğrulama türü için kod parçacığının bölümünü açıklamayı kaldırın.
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()
Bağımlılıkları yükleyin.
pip install azure-identity
Hizmet Bağlayıcısı tarafından eklenen ortam değişkenleriyle kitaplık aracılığıyla azure-identity erişim belirteci alın. Aşağıdaki kodu kullanırken, kullanmak istediğiniz kimlik doğrulama türü için kod parçacığının bölümünü açıklamayı kaldırın.
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')
Dosya ayarlama bölümünde, Service Connector hizmeti tarafından eklenen ortam değişkenlerinden Azure MySQL veritabanı bilgilerini alın. Veritabanına erişmek için önceki adımda alınan öğesini kullanın accessToken .
# 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
}
}
Bağımlılıkları yükleyin.
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"
Kodda, aracılığıyla azidentityerişim belirteci alın ve ardından belirteçle Azure MySQL'e bağlanın. Aşağıdaki kodu kullanırken, kullanmak istediğiniz kimlik doğrulama türü için kod parçacığının bölümünü açıklamayı kaldırın.
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)
}
Service Connector hizmeti tarafından eklenen ortam değişkenlerinden ve Azure MySQL veritabanı bilgilerini kullanarak @azure/identity erişim belirteci alın. Aşağıdaki kodu kullanırken, kullanmak istediğiniz kimlik doğrulama türü için kod parçacığının bölümünü açıklamayı kaldırın.
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');
});
Diğer diller için, Service Connector'ın veritabanını bağlamak için ortam değişkenlerine ayarlayıp ayarlayıp bağlantı dizesi ve kullanıcı adını kullanın. Ortam değişkeni ayrıntıları için bkz. MySQL için Azure Veritabanı Service Connector ile tümleştirme.
Diğer diller için, Service Connector'ın veritabanını bağlamak için ortam değişkenlerine ayarlayıp ayarlayıp bağlantı dizesi ve kullanıcı adını kullanın. Ortam değişkeni ayrıntıları için bkz. MySQL için Azure Veritabanı Service Connector ile tümleştirme.
Diğer diller için, Service Connector'ın veritabanını bağlamak için ortam değişkenlerine ayarlayıp ayarlayacak bağlantı özelliklerini kullanın. Ortam değişkeni ayrıntıları için bkz. MySQL için Azure Veritabanı Service Connector ile tümleştirme.
Daha fazla kod örneği için bkz . Yönetilen kimlik kullanarak gizli diziler olmadan App Service'ten Azure veritabanlarına bağlanma.
Sonraki adımlar
Service Connector hakkında daha fazla bilgi edinmek için belgeleri izleyin.