البرنامج التعليمي: الأمان في مثيل Azure SQL المُدار باستخدام أساسيات خادم Microsoft Azure Active Directory (عمليات تسجيل الدخول)

ينطبق على: مثيل Azure SQL المُدار

يوفر مثيل Azure SQL المُدار جميع ميزات الأمان تقريبًا التي يشتمل عليها أحدث محرك قاعدة بيانات SQL Server (الإصدار Enterprise Edition):

  • تقييد الوصول في بيئة معزولة
  • استخدم آليات المصادقة التي تتطلب الهوية: Microsoft Azure Active Directory ومصادقة SQL
  • استخدام المصادقة مع العضويات والأذونات استنادًا إلى الأدوار
  • تمكين ميزات الأمان

في هذا البرنامج التعليمي، تتعلم كيفية:

  • قم بإنشاء أساس خادم Microsoft Azure Active Directory (تسجيل الدخول) لمثيل مُدار
  • منح أذونات لأساسيات خادم Microsoft Azure Active Directory (تسجيلات الدخول) في مثيل مُدار
  • إنشاء مستخدمي Microsoft Azure Active Directory من أساسيات خادم Microsoft Azure Active Directory (تسجيلات الدخول)
  • تعيين أذونات لمستخدمي Microsoft Azure Active Directory وإدارة أمان قاعدة البيانات
  • استخدم انتحال الهوية مع مستخدمي Microsoft Azure Active Directory
  • استخدم استعلامات قاعدة البيانات المشتركة مع مستخدمي Microsoft Azure Active Directory
  • تعرف على ميزات الأمان، مثل الحماية من التهديدات والتدقيق وإخفاء البيانات والتشفير

لمعرفة المزيد، راجع نظرة عامة على مثيل Azure SQL المُدار.

المتطلبات الأساسية

لإكمال البرنامج التعليمي، تأكد من توفر المتطلبات الأساسية التالية لديك:

تقييد الوصول

يمكن الوصول إلى المثيلات المُدارة من خلال عنوان IP خاص. على نحو يشبه إلى حد كبير بيئة SQL Server المعزولة، تحتاج التطبيقات أو المستخدمون إلى الوصول إلى شبكة SQL Managed Instance Network (VNet) قبل أن يتم إنشاء اتصال. لمزيد من المعلومات، راجع توصيل تطبيقك بـ SQL Managed Instance.

من الممكن أيضًا تكوين نقطة نهاية الخدمة على مثيل مُدار، ما يسمح بالاتصالات العامة بنفس الطريقة المتبعة في Azure SQL Database. لمزيد من المعلومات، راجع تكوين نقطة النهاية العامة في Azure SQL Managed Instance.

ملاحظة

حتى مع تمكين نقاط نهاية الخدمة، لا تنطبق قواعد جدار حماية Azure SQL Database. يمتلك Azure SQL Managed Instance جدار حماية مضمنًا خاصًا به لإدارة الاتصال.

إنشاء أساس خادم Microsoft Azure Active Directory (تسجيل الدخول) باستخدام SSMS

يمكن إنشاء أول خادم أساسي لخادم Microsoft Azure Active Directory (تسجيل الدخول) بواسطة حساب مسؤول SQL القياسي (غير Microsoft Azure Active Directory) وهو sysadmin، أو مسؤول Microsoft Azure Active Directory للمثيل المُدار الذي تم إنشاؤه أثناء عملية التزويد. لمزيد من المعلومات، راجع تزويد مسؤول Microsoft Azure Active Directory لمثيل SQL المُدار.

راجع المقالات التالية للحصول على أمثلة حول الاتصال بـ SQL Managed Instance:

  1. سجّل الدخول إلى المثيل المُدار باستخدام حساب تسجيل دخول SQL قياسي (غير Microsoft Azure Active Directory) يكون sysadmin أو مسؤول Microsoft Azure Active Directory لـ SQL Managed Instance، باستخدام SQL Server Management Studio .

  2. في Object Explorer، انقر بزر الماوس الأيمن فوق الخادم واختر New Query.

  3. في نافذة الاستعلام، استخدم بناء الجملة التالي لإنشاء تسجيل دخول لحساب Microsoft Azure Active Directory محلي:

    USE master
    GO
    CREATE LOGIN login_name FROM EXTERNAL PROVIDER
    GO
    

    يقوم هذا المثال بإنشاء معلومات تسجيل دخول للحساب nativeuser@aadsqlmi.onmicrosoft.com.

    USE master
    GO
    CREATE LOGIN [nativeuser@aadsqlmi.onmicrosoft.com] FROM EXTERNAL PROVIDER
    GO
    
  4. في شريط الأدوات، حدد Execute لإنشاء تسجيل الدخول.

  5. تحقق من تسجيل الدخول المضاف حديثًا، عن طريق تنفيذ أمر T-SQL التالي:

    SELECT *  
    FROM sys.server_principals;  
    GO
    

    Screenshot of the Results tab in the S S M S Object Explorer showing the name, principal_id, sid, type, and type_desc of the newly added login.

لمزيد من المعلومات، راجع إنشاء تسجيل الدخول.

منح أذونات لإنشاء عمليات تسجيل الدخول

لإنشاء أساسيات خادم Microsoft Azure Active Directory أخرى (تسجيلات الدخول)، يجب منح أذونات أو أدوار SQL Server للمدير (SQL أو Microsoft Azure Active Directory).

مصادقة SQL

  • إذا كان تسجيل الدخول هو أساس SQL، فإنه يمكن فقط لعمليات تسجيل الدخول التي تعد جزءًا من الدور sysadmin استخدام الأمر إنشاء لإنشاء عمليات تسجيل دخول لحساب Microsoft Azure Active Directory.

مصادقة Microsoft Azure Active Directory

  • للسماح لخادم Microsoft Azure Active Directory الأساسي (تسجيل الدخول) الذي تم إنشاؤه حديثًا بإمكانية إنشاء عمليات تسجيل دخول أخرى لمستخدمي Microsoft Azure Active Directory الآخرين أو المجموعات أو التطبيقات، امنح تسجيل الدخول sysadmin أو securityadmin دور الخادم.
  • كحد أدنى، يجب منح إذن ALTER ANY LOGIN إلى خادم Microsoft Azure Active Directory الأساسي (تسجيل الدخول) لإنشاء أساسيات خادم Microsoft Azure Active Directory (تسجيلات الدخول).
  • بشكل افتراضي، يكون الإذن القياسي الممنوح لأساسيات خادم Microsoft Azure Active Directory (عمليات تسجيل الدخول) الأساسية المنشأة حديثًا هو: CONNECT SQL و عرض أي قاعدة بيانات.
  • يمكن منح دور الخادم sysadmin للعديد من أساسيات خادم Microsoft Azure Active Directory (تسجيلات الدخول) داخل مثيل مُدار.

لإضافة تسجيل الدخول إلى دور خادم sysadmin:

  1. قم بتسجيل الدخول إلى المثيل المُدار مرة أخرى، أو استخدم الاتصال الحالي بمسؤول Microsoft Azure Active Directory أو SQL الأساسي الذي يعد sysadmin.

  2. في Object Explorer، انقر بزر الماوس الأيمن فوق الخادم واختر New Query.

  3. امنح أساس خادم Microsoft Azure Active Directory (تسجيل الدخول) دور الخادم sysadmin باستخدام بناء جملة T-SQL التالي:

    ALTER SERVER ROLE sysadmin ADD MEMBER login_name
    GO
    

    المثال التالي يمنح sysadminدور الخادم لتسجيل الدخولnativeuser@aadsqlmi.onmicrosoft.com

    ALTER SERVER ROLE sysadmin ADD MEMBER [nativeuser@aadsqlmi.onmicrosoft.com]
    GO
    

إنشاء أساسيات إضافية لخادم Microsoft Azure Active Directory (تسجيلات الدخول) باستخدام SSMS

بمجرد إنشاء أساس خادم Microsoft Azure Active Directory (تسجيل الدخول)، وتزويده بامتيازات sysadmin، يمكن لتسجيل الدخول هذا إنشاء عمليات تسجيل دخول إضافية باستخدام عبارة من الموفر الخارجي باستخدام CREATE LOGIN.

  1. اتصل بالمثيل المُدار باستخدام خادم Microsoft Azure Active Directory الأساسي (تسجيل الدخول)، باستخدام SQL Server Management Studio. أدخل اسم مضيف SQL Managed Instance الخاص بك. للمصادقة في SSMS، توجد ثلاثة خيارات للاختيار من بينها عند تسجيل الدخول باستخدام حساب Microsoft Azure Active Directory:

  2. حدد Active Directory - Universal with MFA support. يؤدي هذا إلى إظهار نافذة Multi-Factor Authentication. سجّل الدخول باستخدام كلمة مرور Microsoft Azure Active Directory.

    Screenshot of the Multi-Factor Authentication login window with the cursor in the Enter password field.

  3. في SSMS Object Explorer، انقر بزر الماوس الأيمن فوق الخادم واختر New Query.

  4. في نافذة الاستعلام، استخدم بناء الجملة التالي لإنشاء تسجيل دخول لحساب Microsoft Azure Active Directory آخر:

    USE master
    GO
    CREATE LOGIN login_name FROM EXTERNAL PROVIDER
    GO
    

    ينشئ هذا المثال معلومات تسجيل دخول لمستخدم Microsoft Azure Active Directory bob@aadsqlmi.net، الذي يتم توحيد مجاله aadsqlmi.net مع مجال Microsoft Azure Active Directory aadsqlmi.onmicrosoft.com.

    قم بتنفيذ أمر T-SQL التالي. حسابات Microsoft Azure Active Directory الموحدة هي بدائل SQL المُدارة للمثيل لتسجيل دخول Windows والمستخدمين المحليين.

    USE master
    GO
    CREATE LOGIN [bob@aadsqlmi.net] FROM EXTERNAL PROVIDER
    GO
    
  5. أنشئ قاعدة بيانات في المثيل المُدار باستخدام بناء الجملة CREATE DATABASE. ستُستخدم قاعدة البيانات هذه لاختبار تسجيلات دخول المستخدمين في القسم التالي.

    1. في Object Explorer، انقر بزر الماوس الأيمن فوق الخادم واختر New Query.

    2. في نافذة الاستعلام، استخدم بناء الجملة التالي لإنشاء قاعدة بيانات باسم MyMITestDB.

      CREATE DATABASE MyMITestDB;
      GO
      
  6. قم بإنشاء تسجيل دخول مثيل مُدار لـ SQL لمجموعة في Microsoft Azure Active Directory. يجب أن تكون المجموعة موجودة في Microsoft Azure Active Directory قبل أن تتمكن من إضافة تسجيل الدخول إلى مثيل SQL المُدار. راجع إنشاء مجموعة أساسية وإضافة أعضاء باستخدام Microsoft Azure Active Directory. قم بإنشاء مجموعة mygroup وقم بإضافة أعضاء إلى هذه المجموعة.

  7. افتح نافذة استعلام جديدة في SQL Server Management Studio.

    يفترض هذا المثال وجود مجموعة تسمى mygroup في Microsoft Azure Active Directory. تنفيذ الأمر التالي:

    USE master
    GO
    CREATE LOGIN [mygroup] FROM EXTERNAL PROVIDER
    GO
    
  8. كاختبار، قم بتسجيل الدخول إلى المثيل المُدار باستخدام تسجيل الدخول أو المجموعة المنشأة حديثًا. افتح اتصالاً جديدًا للمثيل المُدار، واستخدم تسجيل الدخول الجديد عند المصادقة.

  9. في Object Explorer، انقر بزر الماوس الأيمن فوق الخادم واختر New Query للاتصال الجديد.

  10. تحقق من أذونات الخادم لمبدأ خادم Microsoft Azure Active Directory الأساسي (تسجيل الدخول) الذي تم إنشاؤه حديثًا عن طريق تنفيذ الأمر التالي:

    SELECT * FROM sys.fn_my_permissions (NULL, 'DATABASE')
    GO
    

يتم دعم المستخدمين الضيوف كمستخدمين فرديين (دون أن يكونوا جزءًا من مجموعة AAD (رغم إمكانية ذلك)) ويمكن إنشاء عمليات تسجيل الدخول بشكل رئيسي مباشرةً (على سبيل المثال، joe@contoso.con) باستخدام صيغة تسجيل الدخول الحالية.

إنشاء مستخدم Microsoft Azure Active Directory من خادم Microsoft Azure Active Directory الأساسي (تسجيل الدخول)

يعمل التفويض لقواعد البيانات الفردية كثيرًا بنفس الطريقة في SQL Managed Instance كما هو الحال مع قواعد البيانات في SQL Server. يمكن إنشاء مستخدم من تسجيل دخول موجود في قاعدة بيانات، ويتم تزويده بأذونات على قاعدة البيانات هذه، أو إضافته إلى دور قاعدة البيانات.

الآن وقد أنشأنا قاعدة بيانات تسمى MyMITestDB، وتسجيل دخول له أذونات افتراضية فقط، فإن الخطوة التالية هي إنشاء مستخدم من تسجيل الدخول هذا. في الوقت الحالي، يمكن أن يتصل تسجيل الدخول بالمثيل المُدار، ويرى جميع قواعد البيانات، ولكن لا يمكنه التفاعل مع قواعد البيانات. إذا قمت بتسجيل الدخول باستخدام حساب Microsoft Azure Active Directory الذي يحتوي على الأذونات الافتراضية، وحاولت توسيع قاعدة البيانات التي تم إنشاؤها حديثًا، فسترى الخطأ التالي:

Screenshot of an error message from the the S S M S Object Explorer that reads

لمزيد من المعلومات حول منح أذونات قاعدة البيانات، راجع الشروع في استخدام أذونات محرك قاعدة البيانات.

أنشئ مستخدم Microsoft Azure Active Directory وأنشئ جدولاً نموذجيًا

  1. قم بتسجيل الدخول إلى المثيل المُدار باستخدام حساب sysadmin باستخدام SQL Server Management Studio.

  2. في Object Explorer، انقر بزر الماوس الأيمن فوق الخادم واختر New Query.

  3. في نافذة الاستعلام، استخدم بناء الجملة التالي لإنشاء مستخدم Microsoft Azure Active Directory من أساس خادم Microsoft Azure Active Directory (تسجيل الدخول):

    USE <Database Name> -- provide your database name
    GO
    CREATE USER user_name FROM LOGIN login_name
    GO
    

    المثال التالي ينشئ مستخدماً bob@aadsqlmi.net من تسجيل الدخول bob@aadsqlmi.net:

    USE MyMITestDB
    GO
    CREATE USER [bob@aadsqlmi.net] FROM LOGIN [bob@aadsqlmi.net]
    GO
    
  4. يتم دعمه أيضًا لإنشاء مستخدم Microsoft Azure Active Directory من خادم Microsoft Azure Active Directory الأساسي (تسجيل الدخول) وهو مجموعة.

    ينشئ المثال التالي معلومات تسجيل دخول لمجموعة Azure AD mygroup الموجودة في مثيل Azure AD.

    USE MyMITestDB
    GO
    CREATE USER [mygroup] FROM LOGIN [mygroup]
    GO
    

    يمكن لكافة المستخدمين الذين ينتمون إلى mygroup الوصول إلى قاعدة بيانات MyMITestDB.

    هام

    عند إنشاء مستخدم من خادم Microsoft Azure Active Directory الأساسي (تسجيل الدخول)، حدد اسم المستخدم كاسم تسجيل الدخول نفسه من تسجيل الدخول.

    لمزيد من المعلومات، راجع إنشاء مستخدم.

  5. في نافذة استعلام جديدة، قم بإنشاء جدول اختبار باستخدام أمر T-SQL التالي:

    USE MyMITestDB
    GO
    CREATE TABLE TestTable
    (
    AccountNum varchar(10),
    City varchar(255),
    Name varchar(255),
    State varchar(2)
    );
    
  6. قم بإنشاء اتصال في SSMS مع المستخدم الذي تم إنشاؤه. ستلاحظ أنه لا يمكنك رؤية الجدول TestTable الذي تم إنشاؤه بواسطة sysadmin سابقًا. نحتاج إلى تزويد المستخدم بالأذونات لقراءة البيانات من قاعدة البيانات.

  7. يمكنك التحقق من الإذن الحالي الذي يمتلكه المستخدم عن طريق تنفيذ الأمر التالي:

    SELECT * FROM sys.fn_my_permissions('MyMITestDB','DATABASE')
    GO
    

أضف المستخدمين إلى الأدوار على مستوى قاعدة البيانات

لكي يرى المستخدم البيانات في قاعدة البيانات، يمكننا تزويد أدوار على مستوى قاعدة البيانات للمستخدم.

  1. قم بتسجيل الدخول إلى المثيل المُدار باستخدام حساب sysadmin باستخدام SQL Server Management Studio.

  2. في Object Explorer، انقر بزر الماوس الأيمن فوق الخادم واختر New Query.

  3. امنح مستخدم Microsoft Azure Active Directory دور قاعدة البيانات db_datareader باستخدام بناء جملة T-SQL التالي:

    Use <Database Name> -- provide your database name
    ALTER ROLE db_datareader ADD MEMBER user_name
    GO
    

    يوفر المثال التالي للمستخدم bob@aadsqlmi.net والمجموعة mygroup أذونات db_datareader في قاعدة البيانات MyMITestDB:

    USE MyMITestDB
    GO
    ALTER ROLE db_datareader ADD MEMBER [bob@aadsqlmi.net]
    GO
    ALTER ROLE db_datareader ADD MEMBER [mygroup]
    GO
    
  4. تحقق من وجود مستخدم Microsoft Azure Active Directory الذي تم إنشاؤه في قاعدة البيانات عن طريق تنفيذ الأمر التالي:

    SELECT * FROM sys.database_principals
    GO
    
  5. قم بإنشاء اتصال جديد للمثيل المُدار مع المستخدم الذي تمت إضافته إلى الدور db_datareader.

  6. قم بتوسيع قاعدة البيانات في مستكشف الكائنات لمشاهدة الجدول.

    Screenshot from Object Explorer in S S M S showing the folder structure for Tables in MyMITestDB. The dbo.TestTable folder is highlighted.

  7. افتح نافذة استعلام جديدة وقم بتنفيذ عبارة SELECT التالية:

    SELECT *
    FROM TestTable
    

    هل تستطيع رؤية البيانات من الجدول؟ يجب أن ترى الأعمدة يتم إرجاعها.

    Screenshot of the Results tab in the S S M S Object Explorer showing the table column headers AccountNum, City, Name, and State.

انتحال شخصية أساسيات مستوى خادم Microsoft Azure Active Directory (عمليات تسجيل الدخول)

يدعم SQL Managed Instance انتحال صفة أساسيات مستوى الخادم Microsoft Azure Active Directory (تسجيلات الدخول).

اختبار انتحال الهوية

  1. قم بتسجيل الدخول إلى المثيل المُدار باستخدام حساب sysadmin باستخدام SQL Server Management Studio.

  2. في Object Explorer، انقر بزر الماوس الأيمن فوق الخادم واختر New Query.

  3. في نافذة الاستعلام، استخدم الأمر التالي لإنشاء إجراء مخزن جديد:

    USE MyMITestDB
    GO  
    CREATE PROCEDURE dbo.usp_Demo  
    WITH EXECUTE AS 'bob@aadsqlmi.net'  
    AS  
    SELECT user_name();  
    GO
    
  4. استخدم الأمر التالي لمعرفة أن المستخدم الذي تنتحل هويته عند تنفيذ الإجراء المخزن هو bob@aadsqlmi.net.

    Exec dbo.usp_Demo
    
  5. اختبار الانتحال باستخدام عبارة EXECUTE AS LOGIN:

    EXECUTE AS LOGIN = 'bob@aadsqlmi.net'
    GO
    SELECT SUSER_SNAME()
    REVERT
    GO
    

ملاحظة

يمكن فقط لمبادئ SQL على مستوى الخادم (عمليات تسجيل الدخول) التي تعد جزءًا من الدور sysadmin تنفيذ العمليات التالية التي تستهدف أساسيات Microsoft Azure Active Directory:

  • تنفيذ كمستخدم
  • تنفيذ عند تسجيل الدخول

استخدم الاستعلامات عبر قواعد البيانات

يتم دعم الاستعلامات عبر قواعد البيانات لحسابات Microsoft Azure Active Directory باستخدام أساسيات خادم Microsoft Azure Active Directory (تسجيلات الدخول). لاختبار استعلام عبر قاعدة بيانات مع مجموعة Microsoft Azure Active Directory، نحتاج إلى إنشاء قاعدة بيانات وجدول آخر. يمكنك تخطي إنشاء قاعدة بيانات وجدول آخر إذا كان أحدهما موجودًا بالفعل.

  1. قم بتسجيل الدخول إلى المثيل المُدار باستخدام حساب sysadmin باستخدام SQL Server Management Studio.

  2. في Object Explorer، انقر بزر الماوس الأيمن فوق الخادم واختر New Query.

  3. في نافذة الاستعلام، استخدم الأمر التالي لإنشاء قاعدة بيانات باسم MyMITestDB2 وجدول باسم TestTable2:

    CREATE DATABASE MyMITestDB2;
    GO
    USE MyMITestDB2
    GO
    CREATE TABLE TestTable2
    (
    EmpId varchar(10),
    FirstName varchar(255),
    LastName varchar(255),
    Status varchar(10)
    );
    
  4. في نافذة استعلام جديدة، قم بتنفيذ الأمر التالي لإنشاء المستخدم mygroup في قاعدة البيانات الجديدة MyMITestDB2، ومنح أذونات SELECT في قاعدة البيانات هذه لـ مجموعتي:

    USE MyMITestDB2
    GO
    CREATE USER [mygroup] FROM LOGIN [mygroup]
    GO
    GRANT SELECT TO [mygroup]
    GO
    
  5. قم بتسجيل الدخول إلى المثيل المُدار باستخدام SQL Server Management Studio كعضو في مجموعة Microsoft Azure Active Directory وهي mygroup. افتح نافذة استعلام جديدة وقم بتنفيذ عبارة SELECT الخاصة بقاعدة البيانات المشتركة:

    USE MyMITestDB
    SELECT * FROM MyMITestDB2..TestTable2
    GO
    

    يجب أن تشاهد نتائج الجدول من TestTable2.

سيناريوهات إضافية مدعومة

  • يتم دعم إدارة عامل SQL وتنفيذ المهام لأساسيات خادم Microsoft Azure Active Directory (تسجيلات الدخول).
  • يمكن تنفيذ عمليات النسخ الاحتياطي والاستعادة لقاعدة البيانات بواسطة أساسيات خادم Microsoft Azure Active Directory (تسجيلات الدخول).
  • تدقيق جميع العبارات المتعلقة بأساسيات خادم Microsoft Azure Active Directory (تسجيلات الدخول) وأحداث المصادقة.
  • اتصال مسؤول مخصص لأساسيات خادم Microsoft Azure Active Directory (تسجيلات الدخول) التي هي أعضاء في دور الخادم sysadmin.
  • يتم دعم أساسيات خادم Microsoft Azure Active Directory (عمليات تسجيل الدخول) باستخدام الأداة المساعدة sqlcmd وأداة SQL Server Management Studio.
  • يتم دعم مشغلات تسجيل الدخول لأحداث تسجيل الدخول القادمة من أساسيات خادم Microsoft Azure Active Directory (عمليات تسجيل الدخول).
  • يمكن إعداد وسيط الخدمة وبريد قاعدة البيانات باستخدام أساسيات خادم Microsoft Azure Active Directory (تسجيلات الدخول).

الخطوات التالية

تمكين ميزات الأمان

راجع مقالة ميزات أمان المثيل المُدار من SQL للحصول على قائمة شاملة بطرق تأمين قاعدة البيانات الخاصة بك. تمت مناقشة ميزات الأمان التالية:

قدرات مثيل مدارة SQL

للحصول على نظرة عامة كاملة حول إمكانيات المثيل المُدار من SQL، راجع: