تكامل Azure Database for MySQL مع Service Connector
مقالة
تعرض هذه الصفحة أساليب المصادقة المدعومة والعملاء، وتعرض نموذج التعليمات البرمجية التي يمكنك استخدامها لتوصيل Azure Database for MySQL - Flexible Server بخدمات سحابية أخرى باستخدام Service Connector. تعرض هذه الصفحة أيضاً أسماء وقيم متغيرات البيئة الافتراضية (أو تكوين Spring Boot) التي تحصل عليها عند إنشاء اتصال الخدمة.
هام
قاعدة بيانات Azure لخادم MySQL الفردي على مسار الإيقاف. نوصي بشدة بالترقية إلى قاعدة بيانات Azure لخادم MySQL المرن. لمزيد من المعلومات حول الترحيل إلى خادم Azure Database for MySQL المرن، راجع ما الذي يحدث لقاعدة بيانات Azure لخادم MySQL الفردي؟
خدمات الحوسبة المدعومة
يمكن استخدام Service Connector لتوصيل خدمات الحوسبة التالية بقاعدة بيانات Azure ل MySQL:
"Azure App Service"
دالات Azure
Azure Container Apps
Azure Spring Apps
أنواع المصادقة المدعومة وأنواع العملاء
يوضح الجدول أدناه مجموعات أساليب المصادقة والعملاء المدعومة لتوصيل خدمة الحوسبة الخاصة بك بقاعدة بيانات Azure ل MySQL باستخدام Service Connector. يشير "نعم" إلى أن المجموعة مدعومة، بينما تشير "لا" إلى أنها غير مدعومة.
نوع العميل
الهوية المُدارة التي يُعيّنها النظام
الهوية المُدارة التي يعيّنها المُستخدم
بيانات سرية/سلسلة الاتصال
كيان الخدمة
.NET
نعم
نعم
نعم
نعم
Go (go-sql-driver for mysql)
نعم
نعم
نعم
نعم
Java (JDBC)
نعم
نعم
نعم
نعم
Java - Spring Boot (JDBC)
نعم
نعم
نعم
نعم
Node.js (mysql)
نعم
نعم
نعم
نعم
Python (mysql-connector-python)
نعم
نعم
نعم
نعم
Python-Django
نعم
نعم
نعم
نعم
PHP (MySQLi)
نعم
نعم
نعم
نعم
Ruby (mysql2)
نعم
نعم
نعم
نعم
بلا
نعم
نعم
نعم
نعم
يشير هذا الجدول إلى أن جميع مجموعات أنواع العملاء وأساليب المصادقة في الجدول مدعومة. يمكن لجميع أنواع العملاء استخدام أي من أساليب المصادقة للاتصال بقاعدة بيانات Azure ل MySQL باستخدام Service Connector.
إشعار
يتم دعم الهوية المدارة المعينة من قبل النظام والهوية المدارة المعينة من قبل المستخدم ومدير الخدمة فقط على Azure CLI.
أسماء متغيرات البيئة الافتراضية أو خصائص التطبيق ونموذج التعليمات البرمجية
راجع تفاصيل الاتصال ونموذج التعليمات البرمجية في الجداول التالية، وفقا لنوع مصادقة الاتصال ونوع العميل، لتوصيل خدمات الحوسبة بقاعدة بيانات Azure ل MySQL. لمزيد من المعلومات حول اصطلاحات التسمية، راجع مقالة Service Connector internals .
بالنسبة ل .NET، لا يوجد مكون إضافي أو مكتبة لدعم الاتصالات بدون كلمة مرور. يمكنك الحصول على رمز وصول للهوية المدارة أو كيان الخدمة باستخدام مكتبة العميل مثل Azure.Identity. ثم يمكنك استخدام الرمز المميز للوصول ككلمة مرور للاتصال بقاعدة البيانات. عند استخدام التعليمات البرمجية أدناه، قم بإلغاء التعليق على جزء مقتطف التعليمات البرمجية لنوع المصادقة الذي تريد استخدامه.
using Azure.Core;
using Azure.Identity;
using MySqlConnector;
// Uncomment the following lines according to the authentication type.
// For system-assigned managed identity.
// var credential = new DefaultAzureCredential();
// For user-assigned managed identity.
// var credential = new DefaultAzureCredential(
// new DefaultAzureCredentialOptions
// {
// ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_MYSQL_CLIENTID");
// });
// For service principal.
// var tenantId = Environment.GetEnvironmentVariable("AZURE_MYSQL_TENANTID");
// var clientId = Environment.GetEnvironmentVariable("AZURE_MYSQL_CLIENTID");
// var clientSecret = Environment.GetEnvironmentVariable("AZURE_MYSQL_CLIENTSECRET");
// var credential = new ClientSecretCredential(tenantId, clientId, clientSecret);
var tokenRequestContext = new TokenRequestContext(
new[] { "https://ossrdbms-aad.database.windows.net/.default" });
AccessToken accessToken = await credential.GetTokenAsync(tokenRequestContext);
// Open a connection to the MySQL server using the access token.
string connectionString =
$"{Environment.GetEnvironmentVariable("AZURE_MYSQL_CONNECTIONSTRING")};Password={accessToken.Token}";
using var connection = new MySqlConnection(connectionString);
Console.WriteLine("Opening connection using access token...");
await connection.OpenAsync();
// do something
بالنسبة لتطبيق Spring، إذا قمت بإنشاء اتصال مع خيار --client-type springboot، يقوم Service Connector بتعيين الخصائص spring.datasource.azure.passwordless-enabledو spring.datasource.urlو و spring.datasource.username إلى Azure Spring Apps.
المصادقة باستخدام رمز الوصول المميز الحصول على عبر azure-identity المكتبة والحصول على معلومات الاتصال من متغير البيئة المضافة بواسطة Service Connector. عند استخدام التعليمات البرمجية أدناه، قم بإلغاء التعليق على جزء مقتطف التعليمات البرمجية لنوع المصادقة الذي تريد استخدامه.
from azure.identity import ManagedIdentityCredential, ClientSecretCredential
import mysql.connector
import os
# Uncomment the following lines according to the authentication type.
# 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()
تثبيت التبعيات:
pip install azure-identity
احصل على الرمز المميز للوصول عبر azure-identity المكتبة مع متغيرات البيئة المضافة بواسطة Service Connector. عند استخدام التعليمات البرمجية أدناه، قم بإلغاء التعليق على جزء مقتطف التعليمات البرمجية لنوع المصادقة الذي تريد استخدامه.
from azure.identity import ManagedIdentityCredential, ClientSecretCredential
import os
# Uncomment the following lines according to the authentication type.
# 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')
في إعداد الملف، احصل على معلومات قاعدة بيانات Azure MySQL من متغيرات البيئة المضافة بواسطة خدمة Service Connector. استخدم 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
}
}
تثبيت التبعيات:
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"
في التعليمات البرمجية، احصل على الرمز المميز للوصول عبر azidentity، ثم اتصل ب Azure MySQL باستخدام الرمز المميز. عند استخدام التعليمات البرمجية أدناه، قم بإلغاء التعليق على جزء مقتطف التعليمات البرمجية لنوع المصادقة الذي تريد استخدامه.
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 according to the authentication type.
// 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)
}
احصل على الرمز المميز للوصول باستخدام @azure/identity ومعلومات قاعدة بيانات Azure MySQL من متغيرات البيئة المضافة بواسطة خدمة Service Connector. عند استخدام التعليمات البرمجية أدناه، قم بإلغاء التعليق على جزء مقتطف التعليمات البرمجية لنوع المصادقة الذي تريد استخدامه.
import { DefaultAzureCredential,ClientSecretCredential } from "@azure/identity";
const mysql = require('mysql2');
// Uncomment the following lines according to the authentication type.
// 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');
});
بالنسبة للغات الأخرى، استخدم سلسلة الاتصال واسم المستخدم الذي يعينه Service Connector إلى متغيرات البيئة لتوصيل قاعدة البيانات. للحصول على تفاصيل متغير البيئة، راجع دمج قاعدة بيانات Azure ل MySQL مع Service Connector.
بالنسبة للغات الأخرى، استخدم سلسلة الاتصال واسم المستخدم الذي يعينه Service Connector إلى متغيرات البيئة لتوصيل قاعدة البيانات. للحصول على تفاصيل متغير البيئة، راجع دمج قاعدة بيانات Azure ل MySQL مع Service Connector.
بالنسبة للغات الأخرى، استخدم خصائص الاتصال التي يعينها Service Connector إلى متغيرات البيئة لتوصيل قاعدة البيانات. للحصول على تفاصيل متغير البيئة، راجع دمج قاعدة بيانات Azure ل MySQL مع Service Connector.
بالنسبة ل .NET، لا يوجد مكون إضافي أو مكتبة لدعم الاتصالات بدون كلمة مرور. يمكنك الحصول على رمز وصول للهوية المدارة أو كيان الخدمة باستخدام مكتبة العميل مثل Azure.Identity. ثم يمكنك استخدام الرمز المميز للوصول ككلمة مرور للاتصال بقاعدة البيانات. عند استخدام التعليمات البرمجية أدناه، قم بإلغاء التعليق على جزء مقتطف التعليمات البرمجية لنوع المصادقة الذي تريد استخدامه.
using Azure.Core;
using Azure.Identity;
using MySqlConnector;
// Uncomment the following lines according to the authentication type.
// For system-assigned managed identity.
// var credential = new DefaultAzureCredential();
// For user-assigned managed identity.
// var credential = new DefaultAzureCredential(
// new DefaultAzureCredentialOptions
// {
// ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_MYSQL_CLIENTID");
// });
// For service principal.
// var tenantId = Environment.GetEnvironmentVariable("AZURE_MYSQL_TENANTID");
// var clientId = Environment.GetEnvironmentVariable("AZURE_MYSQL_CLIENTID");
// var clientSecret = Environment.GetEnvironmentVariable("AZURE_MYSQL_CLIENTSECRET");
// var credential = new ClientSecretCredential(tenantId, clientId, clientSecret);
var tokenRequestContext = new TokenRequestContext(
new[] { "https://ossrdbms-aad.database.windows.net/.default" });
AccessToken accessToken = await credential.GetTokenAsync(tokenRequestContext);
// Open a connection to the MySQL server using the access token.
string connectionString =
$"{Environment.GetEnvironmentVariable("AZURE_MYSQL_CONNECTIONSTRING")};Password={accessToken.Token}";
using var connection = new MySqlConnection(connectionString);
Console.WriteLine("Opening connection using access token...");
await connection.OpenAsync();
// do something
بالنسبة لتطبيق Spring، إذا قمت بإنشاء اتصال مع خيار --client-type springboot، يقوم Service Connector بتعيين الخصائص spring.datasource.azure.passwordless-enabledو spring.datasource.urlو و spring.datasource.username إلى Azure Spring Apps.
المصادقة باستخدام رمز الوصول المميز الحصول على عبر azure-identity المكتبة والحصول على معلومات الاتصال من متغير البيئة المضافة بواسطة Service Connector. عند استخدام التعليمات البرمجية أدناه، قم بإلغاء التعليق على جزء مقتطف التعليمات البرمجية لنوع المصادقة الذي تريد استخدامه.
from azure.identity import ManagedIdentityCredential, ClientSecretCredential
import mysql.connector
import os
# Uncomment the following lines according to the authentication type.
# 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()
تثبيت التبعيات:
pip install azure-identity
احصل على الرمز المميز للوصول عبر azure-identity المكتبة مع متغيرات البيئة المضافة بواسطة Service Connector. عند استخدام التعليمات البرمجية أدناه، قم بإلغاء التعليق على جزء مقتطف التعليمات البرمجية لنوع المصادقة الذي تريد استخدامه.
from azure.identity import ManagedIdentityCredential, ClientSecretCredential
import os
# Uncomment the following lines according to the authentication type.
# 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')
في إعداد الملف، احصل على معلومات قاعدة بيانات Azure MySQL من متغيرات البيئة المضافة بواسطة خدمة Service Connector. استخدم 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
}
}
تثبيت التبعيات:
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"
في التعليمات البرمجية، احصل على الرمز المميز للوصول عبر azidentity، ثم اتصل ب Azure MySQL باستخدام الرمز المميز. عند استخدام التعليمات البرمجية أدناه، قم بإلغاء التعليق على جزء مقتطف التعليمات البرمجية لنوع المصادقة الذي تريد استخدامه.
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 according to the authentication type.
// 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)
}
احصل على الرمز المميز للوصول باستخدام @azure/identity ومعلومات قاعدة بيانات Azure MySQL من متغيرات البيئة المضافة بواسطة خدمة Service Connector. عند استخدام التعليمات البرمجية أدناه، قم بإلغاء التعليق على جزء مقتطف التعليمات البرمجية لنوع المصادقة الذي تريد استخدامه.
import { DefaultAzureCredential,ClientSecretCredential } from "@azure/identity";
const mysql = require('mysql2');
// Uncomment the following lines according to the authentication type.
// 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');
});
بالنسبة للغات الأخرى، استخدم سلسلة الاتصال واسم المستخدم الذي يعينه Service Connector إلى متغيرات البيئة لتوصيل قاعدة البيانات. للحصول على تفاصيل متغير البيئة، راجع دمج قاعدة بيانات Azure ل MySQL مع Service Connector.
بالنسبة للغات الأخرى، استخدم سلسلة الاتصال واسم المستخدم الذي يعينه Service Connector إلى متغيرات البيئة لتوصيل قاعدة البيانات. للحصول على تفاصيل متغير البيئة، راجع دمج قاعدة بيانات Azure ل MySQL مع Service Connector.
بالنسبة للغات الأخرى، استخدم خصائص الاتصال التي يعينها Service Connector إلى متغيرات البيئة لتوصيل قاعدة البيانات. للحصول على تفاصيل متغير البيئة، راجع دمج قاعدة بيانات Azure ل MySQL مع Service Connector.
بعد إنشاء springboot اتصال نوع العميل، ستضيف خدمة Service Connector تلقائيا خصائص spring.datasource.url، ، ، spring.datasource.usernamespring.datasource.password. لذلك يمكن لتطبيق Spring boot إضافة الفاصوليا تلقائيا.
في التعليمات البرمجية، احصل على سلسلة الاتصال MySQL من متغيرات البيئة المضافة بواسطة خدمة Service Connector. لإنشاء اتصال مشفر بخادم MySQL عبر SSL، راجع هذه الخطوات.
using System;
using System.Data;
using MySql.Data.MySqlClient;
string connectionString = Environment.GetEnvironmentVariable("AZURE_MYSQL_CONNECTIONSTRING");
using (MySqlConnection connection = new MySqlConnection(connectionString))
{
connection.Open();
}
في التعليمات البرمجية، احصل على سلسلة الاتصال MySQL من متغيرات البيئة المضافة بواسطة خدمة Service Connector. لإنشاء اتصال مشفر بخادم MySQL عبر SSL، راجع هذه الخطوات.
في التعليمات البرمجية، احصل على معلومات اتصال MySQL من متغيرات البيئة المضافة بواسطة خدمة Service Connector. لإنشاء اتصال مشفر بخادم MySQL عبر SSL، راجع هذه الخطوات.
في إعداد الملف، احصل على معلومات قاعدة بيانات MySQL من متغيرات البيئة المضافة بواسطة خدمة Service Connector. لإنشاء اتصال مشفر بخادم MySQL عبر SSL، راجع هذه الخطوات.
في التعليمات البرمجية، احصل على سلسلة الاتصال MySQL من متغيرات البيئة المضافة بواسطة خدمة Service Connector. لإنشاء اتصال مشفر بخادم MySQL عبر SSL، راجع هذه الخطوات.
في التعليمات البرمجية، احصل على معلومات اتصال MySQL من متغيرات البيئة المضافة بواسطة خدمة Service Connector. لإنشاء اتصال مشفر بخادم MySQL عبر SSL، راجع هذه الخطوات.
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.');
});
في التعليمات البرمجية، احصل على معلومات اتصال MySQL من متغيرات البيئة المضافة بواسطة خدمة Service Connector. لإنشاء اتصال مشفر بخادم MySQL عبر SSL، راجع هذه الخطوات.
في التعليمات البرمجية، احصل على معلومات اتصال MySQL من متغيرات البيئة المضافة بواسطة خدمة Service Connector. لإنشاء اتصال مشفر بخادم MySQL عبر SSL، راجع هذه الخطوات.
بالنسبة للغات الأخرى، استخدم خصائص الاتصال التي يعينها Service Connector إلى متغيرات البيئة لتوصيل قاعدة البيانات. للحصول على تفاصيل متغير البيئة، راجع دمج قاعدة بيانات Azure ل MySQL مع Service Connector.
بالنسبة ل .NET، لا يوجد مكون إضافي أو مكتبة لدعم الاتصالات بدون كلمة مرور. يمكنك الحصول على رمز وصول للهوية المدارة أو كيان الخدمة باستخدام مكتبة العميل مثل Azure.Identity. ثم يمكنك استخدام الرمز المميز للوصول ككلمة مرور للاتصال بقاعدة البيانات. عند استخدام التعليمات البرمجية أدناه، قم بإلغاء التعليق على جزء مقتطف التعليمات البرمجية لنوع المصادقة الذي تريد استخدامه.
using Azure.Core;
using Azure.Identity;
using MySqlConnector;
// Uncomment the following lines according to the authentication type.
// For system-assigned managed identity.
// var credential = new DefaultAzureCredential();
// For user-assigned managed identity.
// var credential = new DefaultAzureCredential(
// new DefaultAzureCredentialOptions
// {
// ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_MYSQL_CLIENTID");
// });
// For service principal.
// var tenantId = Environment.GetEnvironmentVariable("AZURE_MYSQL_TENANTID");
// var clientId = Environment.GetEnvironmentVariable("AZURE_MYSQL_CLIENTID");
// var clientSecret = Environment.GetEnvironmentVariable("AZURE_MYSQL_CLIENTSECRET");
// var credential = new ClientSecretCredential(tenantId, clientId, clientSecret);
var tokenRequestContext = new TokenRequestContext(
new[] { "https://ossrdbms-aad.database.windows.net/.default" });
AccessToken accessToken = await credential.GetTokenAsync(tokenRequestContext);
// Open a connection to the MySQL server using the access token.
string connectionString =
$"{Environment.GetEnvironmentVariable("AZURE_MYSQL_CONNECTIONSTRING")};Password={accessToken.Token}";
using var connection = new MySqlConnection(connectionString);
Console.WriteLine("Opening connection using access token...");
await connection.OpenAsync();
// do something
بالنسبة لتطبيق Spring، إذا قمت بإنشاء اتصال مع خيار --client-type springboot، يقوم Service Connector بتعيين الخصائص spring.datasource.azure.passwordless-enabledو spring.datasource.urlو و spring.datasource.username إلى Azure Spring Apps.
المصادقة باستخدام رمز الوصول المميز الحصول على عبر azure-identity المكتبة والحصول على معلومات الاتصال من متغير البيئة المضافة بواسطة Service Connector. عند استخدام التعليمات البرمجية أدناه، قم بإلغاء التعليق على جزء مقتطف التعليمات البرمجية لنوع المصادقة الذي تريد استخدامه.
from azure.identity import ManagedIdentityCredential, ClientSecretCredential
import mysql.connector
import os
# Uncomment the following lines according to the authentication type.
# 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()
تثبيت التبعيات:
pip install azure-identity
احصل على الرمز المميز للوصول عبر azure-identity المكتبة مع متغيرات البيئة المضافة بواسطة Service Connector. عند استخدام التعليمات البرمجية أدناه، قم بإلغاء التعليق على جزء مقتطف التعليمات البرمجية لنوع المصادقة الذي تريد استخدامه.
from azure.identity import ManagedIdentityCredential, ClientSecretCredential
import os
# Uncomment the following lines according to the authentication type.
# 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')
في إعداد الملف، احصل على معلومات قاعدة بيانات Azure MySQL من متغيرات البيئة المضافة بواسطة خدمة Service Connector. استخدم 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
}
}
تثبيت التبعيات:
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"
في التعليمات البرمجية، احصل على الرمز المميز للوصول عبر azidentity، ثم اتصل ب Azure MySQL باستخدام الرمز المميز. عند استخدام التعليمات البرمجية أدناه، قم بإلغاء التعليق على جزء مقتطف التعليمات البرمجية لنوع المصادقة الذي تريد استخدامه.
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 according to the authentication type.
// 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)
}
احصل على الرمز المميز للوصول باستخدام @azure/identity ومعلومات قاعدة بيانات Azure MySQL من متغيرات البيئة المضافة بواسطة خدمة Service Connector. عند استخدام التعليمات البرمجية أدناه، قم بإلغاء التعليق على جزء مقتطف التعليمات البرمجية لنوع المصادقة الذي تريد استخدامه.
import { DefaultAzureCredential,ClientSecretCredential } from "@azure/identity";
const mysql = require('mysql2');
// Uncomment the following lines according to the authentication type.
// 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');
});
بالنسبة للغات الأخرى، استخدم سلسلة الاتصال واسم المستخدم الذي يعينه Service Connector إلى متغيرات البيئة لتوصيل قاعدة البيانات. للحصول على تفاصيل متغير البيئة، راجع دمج قاعدة بيانات Azure ل MySQL مع Service Connector.
بالنسبة للغات الأخرى، استخدم سلسلة الاتصال واسم المستخدم الذي يعينه Service Connector إلى متغيرات البيئة لتوصيل قاعدة البيانات. للحصول على تفاصيل متغير البيئة، راجع دمج قاعدة بيانات Azure ل MySQL مع Service Connector.
بالنسبة للغات الأخرى، استخدم خصائص الاتصال التي يعينها Service Connector إلى متغيرات البيئة لتوصيل قاعدة البيانات. للحصول على تفاصيل متغير البيئة، راجع دمج قاعدة بيانات Azure ل MySQL مع Service Connector.
قريبًا: خلال عام 2024، سنتخلص تدريجيًا من GitHub Issues بوصفها آلية إرسال ملاحظات للمحتوى ونستبدلها بنظام ملاحظات جديد. لمزيد من المعلومات، راجع https://aka.ms/ContentUserFeedback.