تعرض هذه الصفحة أساليب المصادقة المدعومة والعملاء، وتعرض نموذج التعليمات البرمجية التي يمكنك استخدامها لتوصيل خدمات الحوسبة بقاعدة بيانات Azure SQL باستخدام موصل الخدمة. قد تظل قادرا على الاتصال بقاعدة بيانات Azure SQL باستخدام أساليب أخرى. تعرض هذه الصفحة أيضا أسماء متغيرات البيئة الافتراضية والقيم التي تحصل عليها عند إنشاء اتصال الخدمة.
خدمات الحوسبة المدعومة
يمكن استخدام موصل الخدمة لتوصيل خدمات الحوسبة التالية بقاعدة بيانات Azure SQL:
"Azure App Service"
Azure Container Apps
دالات Azure
خدمة Azure Kubernetes (AKS)
Azure Spring Apps
أنواع المصادقة المدعومة والعملاء
يوضح الجدول أدناه مجموعات أساليب المصادقة والعملاء المدعومة لتوصيل خدمة الحوسبة بقاعدة بيانات Azure SQL باستخدام موصل الخدمة. يشير "نعم" إلى أن المجموعة مدعومة، بينما تشير "لا" إلى أنها غير مدعومة.
نوع العميل
الهوية المُدارة التي يُعيّنها النظام
الهوية المُدارة التي يعيّنها المُستخدم
بيانات سرية/سلسلة الاتصال
كيان الخدمة
.NET
نعم
نعم
نعم
نعم
انتقال
لا
لا
نعم
لا
Java
نعم
نعم
نعم
نعم
Java - Spring Boot
نعم
نعم
نعم
نعم
Node.js
نعم
نعم
نعم
نعم
PHP
لا
لا
نعم
لا
Python
نعم
نعم
نعم
نعم
Python - Django
لا
لا
نعم
لا
Ruby
لا
لا
نعم
لا
بلا
نعم
نعم
نعم
نعم
يشير هذا الجدول إلى أن الأسلوب Secret/سلسلة الاتصال مدعوم لكافة أنواع العملاء. يتم دعم الهوية المدارة المعينة من قبل النظام والهوية المدارة المعينة من قبل المستخدم والأساليب الأساسية للخدمة ل .NET وJava وJava - Spring Boot Node.js وPython وأنواع العملاء بلا. هذه الأساليب غير مدعومة أنواع عملاء Go وPHP و Django و Ruby.
إشعار
يتم دعم الهوية المدارة المعينة من قبل النظام والهوية المدارة المعينة من قبل المستخدم ومدير الخدمة فقط على Azure CLI.
أسماء متغيرات البيئة الافتراضية أو خصائص التطبيق ونموذج التعليمات البرمجية
استخدم تفاصيل الاتصال أدناه لتوصيل خدمات الحوسبة بقاعدة بيانات Azure SQL. لكل مثال أدناه، استبدل النصوص <sql-server>النائبة و <sql-database><sql-username>و و <sql-password> باسم الخادم واسم قاعدة البيانات ومعرف المستخدم وكلمة المرور الخاصة بك. لمزيد من المعلومات حول اصطلاحات التسمية، راجع مقالة Service Connector internals .
احصل على سلسلة الاتصال قاعدة بيانات Azure SQL من متغير البيئة الذي تمت إضافته بواسطة Service Connector.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
لمزيد من المعلومات، راجع استخدام مصادقة Active Directory Managed Identity.
احصل على سلسلة الاتصال قاعدة بيانات Azure SQL من متغير البيئة الذي تمت إضافته بواسطة Service Connector.
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import com.microsoft.sqlserver.jdbc.SQLServerDataSource;
public class Main {
public static void main(String[] args) {
// AZURE_SQL_CONNECTIONSTRING should be one of the following:
// For system-assigned managed identity: "jdbc:sqlserver://{SQLName}.database.windows.net:1433;databaseName={SQLDbName};authentication=ActiveDirectoryMSI;"
// For user-assigned managed identity: "jdbc:sqlserver://{SQLName}.database.windows.net:1433;databaseName={SQLDbName};msiClientId={UserAssignedMiClientId};authentication=ActiveDirectoryMSI;"
// For service principal: "jdbc:sqlserver://{SQLName}.database.windows.net:1433;databaseName={SQLDbName};user={ServicePrincipalClientId};password={spSecret};authentication=ActiveDirectoryServicePrincipal;"
String connectionString = System.getenv("AZURE_SQL_CONNECTIONSTRING");
SQLServerDataSource ds = new SQLServerDataSource();
ds.setURL(connectionString);
try (Connection connection = ds.getConnection()) {
System.out.println("Connected successfully.");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
بالنسبة لتطبيق Spring، إذا قمت بإنشاء اتصال مع خيار --client-type springboot، يقوم Service Connector بتعيين الخصائص spring.datasource.url بتنسيق jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; القيمة إلى Azure Spring Apps.
احصل على تكوينات اتصال قاعدة بيانات Azure SQL من متغير البيئة المضافة بواسطة Service Connector. عند استخدام التعليمات البرمجية أدناه، قم بإلغاء التعليق على جزء مقتطف التعليمات البرمجية لنوع المصادقة الذي تريد استخدامه. إذا كنت تستخدم Azure Container Apps كخدمة حساب أو سلسلة الاتصال في مقتطف التعليمات البرمجية لا يعمل، فراجع ترحيل تطبيق Python لاستخدام اتصالات بدون كلمة مرور مع قاعدة بيانات Azure SQL للاتصال بقاعدة بيانات Azure SQL باستخدام رمز مميز للوصول.
import os
import pyodbc
server = os.getenv('AZURE_SQL_SERVER')
port = os.getenv('AZURE_SQL_PORT')
database = os.getenv('AZURE_SQL_DATABASE')
authentication = os.getenv('AZURE_SQL_AUTHENTICATION')
# Uncomment the following lines corresponding to the authentication type you want to use.
# For system-assigned managed identity.
# connString = f'Driver={{ODBC Driver 18 for SQL Server}};Server=tcp:{server},{port};Database={database};Authentication={authentication};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
# For user-assigned managed identity.
# clientID = os.getenv('AZURE_SQL_USER')
# connString = f'Driver={{ODBC Driver 18 for SQL Server}};Server=tcp:{server},{port};Database={database};UID={clientID};Authentication={authentication};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
# For service principal.
# user = os.getenv('AZURE_SQL_USER')
# password = os.getenv('AZURE_SQL_PASSWORD')
# connString = f'Driver={{ODBC Driver 18 for SQL Server}};Server=tcp:{server},{port};Database={database};UID={user};PWD={password};Authentication={authentication};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
conn = pyodbc.connect(connString)
تثبيت التبعيات:
npm install mssql
احصل على تكوينات اتصال قاعدة بيانات Azure SQL من متغيرات البيئة المضافة بواسطة Service Connector. عند استخدام التعليمات البرمجية أدناه، قم بإلغاء التعليق على جزء مقتطف التعليمات البرمجية لنوع المصادقة الذي تريد استخدامه.
بالنسبة للغات الأخرى، استخدم خصائص الاتصال التي يعينها Service Connector إلى متغيرات البيئة لتوصيل قاعدة البيانات. للحصول على تفاصيل متغير البيئة، راجع دمج قاعدة بيانات Azure SQL مع موصل الخدمة.
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;User ID=<identity-client-ID>;Authentication=ActiveDirectoryManagedIdentity
احصل على سلسلة الاتصال قاعدة بيانات Azure SQL من متغير البيئة الذي تمت إضافته بواسطة Service Connector.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
لمزيد من المعلومات، راجع استخدام مصادقة Active Directory Managed Identity.
احصل على سلسلة الاتصال قاعدة بيانات Azure SQL من متغير البيئة الذي تمت إضافته بواسطة Service Connector.
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import com.microsoft.sqlserver.jdbc.SQLServerDataSource;
public class Main {
public static void main(String[] args) {
// AZURE_SQL_CONNECTIONSTRING should be one of the following:
// For system-assigned managed identity: "jdbc:sqlserver://{SQLName}.database.windows.net:1433;databaseName={SQLDbName};authentication=ActiveDirectoryMSI;"
// For user-assigned managed identity: "jdbc:sqlserver://{SQLName}.database.windows.net:1433;databaseName={SQLDbName};msiClientId={UserAssignedMiClientId};authentication=ActiveDirectoryMSI;"
// For service principal: "jdbc:sqlserver://{SQLName}.database.windows.net:1433;databaseName={SQLDbName};user={ServicePrincipalClientId};password={spSecret};authentication=ActiveDirectoryServicePrincipal;"
String connectionString = System.getenv("AZURE_SQL_CONNECTIONSTRING");
SQLServerDataSource ds = new SQLServerDataSource();
ds.setURL(connectionString);
try (Connection connection = ds.getConnection()) {
System.out.println("Connected successfully.");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
بالنسبة لتطبيق Spring، إذا قمت بإنشاء اتصال مع خيار --client-type springboot، يقوم Service Connector بتعيين الخصائص spring.datasource.url بتنسيق jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; القيمة إلى Azure Spring Apps.
احصل على تكوينات اتصال قاعدة بيانات Azure SQL من متغير البيئة المضافة بواسطة Service Connector. عند استخدام التعليمات البرمجية أدناه، قم بإلغاء التعليق على جزء مقتطف التعليمات البرمجية لنوع المصادقة الذي تريد استخدامه. إذا كنت تستخدم Azure Container Apps كخدمة حساب أو سلسلة الاتصال في مقتطف التعليمات البرمجية لا يعمل، فراجع ترحيل تطبيق Python لاستخدام اتصالات بدون كلمة مرور مع قاعدة بيانات Azure SQL للاتصال بقاعدة بيانات Azure SQL باستخدام رمز مميز للوصول.
import os
import pyodbc
server = os.getenv('AZURE_SQL_SERVER')
port = os.getenv('AZURE_SQL_PORT')
database = os.getenv('AZURE_SQL_DATABASE')
authentication = os.getenv('AZURE_SQL_AUTHENTICATION')
# Uncomment the following lines corresponding to the authentication type you want to use.
# For system-assigned managed identity.
# connString = f'Driver={{ODBC Driver 18 for SQL Server}};Server=tcp:{server},{port};Database={database};Authentication={authentication};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
# For user-assigned managed identity.
# clientID = os.getenv('AZURE_SQL_USER')
# connString = f'Driver={{ODBC Driver 18 for SQL Server}};Server=tcp:{server},{port};Database={database};UID={clientID};Authentication={authentication};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
# For service principal.
# user = os.getenv('AZURE_SQL_USER')
# password = os.getenv('AZURE_SQL_PASSWORD')
# connString = f'Driver={{ODBC Driver 18 for SQL Server}};Server=tcp:{server},{port};Database={database};UID={user};PWD={password};Authentication={authentication};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
conn = pyodbc.connect(connString)
تثبيت التبعيات:
npm install mssql
احصل على تكوينات اتصال قاعدة بيانات Azure SQL من متغيرات البيئة المضافة بواسطة Service Connector. عند استخدام التعليمات البرمجية أدناه، قم بإلغاء التعليق على جزء مقتطف التعليمات البرمجية لنوع المصادقة الذي تريد استخدامه.
بالنسبة للغات الأخرى، استخدم خصائص الاتصال التي يعينها Service Connector إلى متغيرات البيئة لتوصيل قاعدة البيانات. للحصول على تفاصيل متغير البيئة، راجع دمج قاعدة بيانات Azure SQL مع موصل الخدمة.
توصي Microsoft باستخدام تدفق المصادقة الأكثر أمانا المتوفر. يتطلب تدفق المصادقة الموضح في هذا الإجراء درجة عالية جدا من الثقة في التطبيق، ويحمل مخاطر غير موجودة في تدفقات أخرى. يجب عليك استخدام هذا التدفق فقط عندما لا تكون التدفقات الأخرى الأكثر أمانا، مثل الهويات المدارة، قابلة للتطبيق.
احصل على سلسلة الاتصال قاعدة بيانات Azure SQL من متغير البيئة الذي تمت إضافته بواسطة Service Connector.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
بالنسبة للغات الأخرى، استخدم خصائص الاتصال التي يعينها Service Connector إلى متغيرات البيئة لتوصيل قاعدة البيانات. للحصول على تفاصيل متغير البيئة، راجع دمج قاعدة بيانات Azure SQL مع موصل الخدمة.
Data Source=<sql-server>.database.windows.net,1433;Initial Catalog=<sql-database>;User ID=<client-Id>;Password=<client-secret>;Authentication=ActiveDirectoryServicePrincipal
احصل على سلسلة الاتصال قاعدة بيانات Azure SQL من متغير البيئة الذي تمت إضافته بواسطة Service Connector.
using Microsoft.Data.SqlClient;
string connectionString =
Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING")!;
using var connection = new SqlConnection(connectionString);
connection.Open();
لمزيد من المعلومات، راجع استخدام مصادقة Active Directory Managed Identity.
احصل على سلسلة الاتصال قاعدة بيانات Azure SQL من متغير البيئة الذي تمت إضافته بواسطة Service Connector.
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import com.microsoft.sqlserver.jdbc.SQLServerDataSource;
public class Main {
public static void main(String[] args) {
// AZURE_SQL_CONNECTIONSTRING should be one of the following:
// For system-assigned managed identity: "jdbc:sqlserver://{SQLName}.database.windows.net:1433;databaseName={SQLDbName};authentication=ActiveDirectoryMSI;"
// For user-assigned managed identity: "jdbc:sqlserver://{SQLName}.database.windows.net:1433;databaseName={SQLDbName};msiClientId={UserAssignedMiClientId};authentication=ActiveDirectoryMSI;"
// For service principal: "jdbc:sqlserver://{SQLName}.database.windows.net:1433;databaseName={SQLDbName};user={ServicePrincipalClientId};password={spSecret};authentication=ActiveDirectoryServicePrincipal;"
String connectionString = System.getenv("AZURE_SQL_CONNECTIONSTRING");
SQLServerDataSource ds = new SQLServerDataSource();
ds.setURL(connectionString);
try (Connection connection = ds.getConnection()) {
System.out.println("Connected successfully.");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
بالنسبة لتطبيق Spring، إذا قمت بإنشاء اتصال مع خيار --client-type springboot، يقوم Service Connector بتعيين الخصائص spring.datasource.url بتنسيق jdbc:sqlserver://<sql-server>.database.windows.net:1433;databaseName=<sql-db>;authentication=ActiveDirectoryMSI; القيمة إلى Azure Spring Apps.
احصل على تكوينات اتصال قاعدة بيانات Azure SQL من متغير البيئة المضافة بواسطة Service Connector. عند استخدام التعليمات البرمجية أدناه، قم بإلغاء التعليق على جزء مقتطف التعليمات البرمجية لنوع المصادقة الذي تريد استخدامه. إذا كنت تستخدم Azure Container Apps كخدمة حساب أو سلسلة الاتصال في مقتطف التعليمات البرمجية لا يعمل، فراجع ترحيل تطبيق Python لاستخدام اتصالات بدون كلمة مرور مع قاعدة بيانات Azure SQL للاتصال بقاعدة بيانات Azure SQL باستخدام رمز مميز للوصول.
import os
import pyodbc
server = os.getenv('AZURE_SQL_SERVER')
port = os.getenv('AZURE_SQL_PORT')
database = os.getenv('AZURE_SQL_DATABASE')
authentication = os.getenv('AZURE_SQL_AUTHENTICATION')
# Uncomment the following lines corresponding to the authentication type you want to use.
# For system-assigned managed identity.
# connString = f'Driver={{ODBC Driver 18 for SQL Server}};Server=tcp:{server},{port};Database={database};Authentication={authentication};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
# For user-assigned managed identity.
# clientID = os.getenv('AZURE_SQL_USER')
# connString = f'Driver={{ODBC Driver 18 for SQL Server}};Server=tcp:{server},{port};Database={database};UID={clientID};Authentication={authentication};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
# For service principal.
# user = os.getenv('AZURE_SQL_USER')
# password = os.getenv('AZURE_SQL_PASSWORD')
# connString = f'Driver={{ODBC Driver 18 for SQL Server}};Server=tcp:{server},{port};Database={database};UID={user};PWD={password};Authentication={authentication};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30'
conn = pyodbc.connect(connString)
تثبيت التبعيات:
npm install mssql
احصل على تكوينات اتصال قاعدة بيانات Azure SQL من متغيرات البيئة المضافة بواسطة Service Connector. عند استخدام التعليمات البرمجية أدناه، قم بإلغاء التعليق على جزء مقتطف التعليمات البرمجية لنوع المصادقة الذي تريد استخدامه.
بالنسبة للغات الأخرى، استخدم خصائص الاتصال التي يعينها Service Connector إلى متغيرات البيئة لتوصيل قاعدة البيانات. للحصول على تفاصيل متغير البيئة، راجع دمج قاعدة بيانات Azure SQL مع موصل الخدمة.