مبادئ خوادم Microsoft Entra

يمكنك إنشاء واستخدام مبادئ الخوادم من Microsoft Entra ID (المعروف سابقا باسم Azure Active Directory) كبيانات تسجيل دخول في قاعدة البيانات الافتراضية master لمجموعة SQL مخصصة ل Azure Synapse Analytics.

Note

مبادئ خوادم Microsoft Entra حاليا قيد المعاينة ل Azure Synapse Analytics.

هناك عدة فوائد لاستخدام مبادئ خوادم Microsoft Entra مع مجموعة SQL مخصصة:

  • دعم أدوار الخوادم لإدارة الأذونات.
  • ادعم عدة مستخدمين ل Microsoft Entra بأدوار خاصة ل Azure Synapse Analytics، مثل loginmanager الأدوار وdbmanager.
  • التكافؤ الوظيفي بين تسجيلات الدخول عبر SQL وتسجيلات الدخول إلى Microsoft Entra.
  • زيادة دعم تحسين الوظائف مثل استخدام المصادقة فقط على Microsoft Entra. تسمح المصادقة التي تعتمد فقط على Microsoft Entra بتعطيل مصادقة SQL، والتي تشمل مسؤول خادم SQL، وتسجيل الدخول إلى SQL، والمستخدمين.
  • استخدم عمليات تسجيل الدخول الرئيسية لخدمة Microsoft Entra مع أدوار خاصة لأتمتة إنشاء وصيانة المستخدمين وقواعد البيانات بالكامل باستخدام تطبيقات Microsoft Entra.

لمزيد من المعلومات، انظر Microsoft Entra authentication for Azure Synapse Analytics.

الأذونات

لاستخدام أو إنشاء تسجيلات الدخول الخاصة ب Microsoft Entra في قاعدة البيانات الافتراضيةmaster، تحتاج إلى الأذونات التالية:

  • إذن أو عضوية مسؤول Microsoft Entra في دور الخادمloginmanager. فقط مسؤول Microsoft Entra يمكنه إنشاء أول تسجيل دخول ل Microsoft Entra.
  • يجب أن يكون عضوا في Microsoft Entra ID ضمن نفس الدليل المستخدم من قبل Azure Synapse Analytics.

افتراضيا، يتم منح إذن "عرض أي قاعدة بيانات" لتسجيلات master الدخول الجديدة التي تم إنشاؤها في Microsoft Entra في قاعدة البيانات.

صياغة مبادئ Microsoft Entra

استخدم الصياغة التالية لإنشاء وإدارة مبادئ خوادم وقواعد بيانات Microsoft Entra.

إنشاء تسجيل الدخول

يقوم هذا البناء على إنشاء تسجيل دخول على مستوى الخادم بناء على هوية Microsoft Entra. فقط مسؤول Microsoft Entra يمكنه تشغيل هذا الأمر في قاعدة البيانات الافتراضيةmaster.

CREATE LOGIN login_name
  { 
    FROM EXTERNAL PROVIDER [WITH OBJECT_ID = 'objectid'] 
    | WITH <option_list> [,..] 
  }

<option_list> ::=
    PASSWORD = { 'password' }
    [ , SID = sid ]

يحدد login_name المبدأ Microsoft Entra، وهو مستخدم Microsoft Entra أو مجموعة أو تطبيق.

لمزيد من المعلومات، راجع إنشاء تسجيل الدخول (Transact-SQL).

إنشاء مستخدم من تسجيل الدخول

ينشئ بناء جملة T-SQL التالي مبدأ Microsoft Entra على مستوى قاعدة البيانات مرتبطا بتسجيل دخول Microsoft Entra في قاعدة البيانات الافتراضيةmaster. مماثل لصياغة بناء الجملة لإنشاء مستخدم Microsoft Entra يحتوي على قاعدة بيانات فقط، الفرق الوحيد هو تحديد FROM LOGIN [login_name] بدلا من FROM EXTERNAL PROVIDER.

لإنشاء مستخدم Microsoft Entra من تسجيل دخول Microsoft Entra، استخدم الصياغة التالية.

CREATE USER [user_name] FROM LOGIN [login_name]

يمكنك استخدام العمود SID من sys.database_principals للتمييز بين مستخدم قاعدة بيانات Microsoft Entra ومستخدم Microsoft Entra تم إنشاؤه من تسجيل الدخول. بالنسبة لمستخدم قاعدة بيانات محتوية، فإن السلسلة SID النصية الثنائية بطول 16. بالنسبة للمستخدم القائم على تسجيل الدخول، يكون طول الرقم SID 18 مع AADE لاحقة.

Note

إضافة اللاحقة AADE إلى SID هي الطريقة التي تحدد بها مستخدم Microsoft Entra على أنه تم إنشاؤه من تسجيل الدخول. ومع ذلك، هذا يعني أيضا أن SID الخاص بتسجيل الدخول والمستخدمين لا يتطابقون بين sys.server_principals و sys.database_principals. لربط المستخدم بتسجيل الدخول الخاص به، يجب أولا إزالة اللاحقة AADE .

لفهم الفرق المفاهيمي بين المستخدمين المعتمدين على تسجيل الدخول ومستخدمي قواعد البيانات المحتوى، انظر مستخدمي قواعد البيانات المضمنة.

لمزيد من المعلومات حول جميع صيغ إنشاء المستخدم، راجع إنشاء المستخدم (Transact-SQL).

قم بتعطيل أو تمكين تسجيل الدخول باستخدام ALTER LOGIN

استخدم صياغة تسجيل الدخول (Transact-SQL) DDL لتمكين أو تعطيل تسجيل دخول Microsoft Entra في مجموعة SQL مخصصة Azure Synapse Analytics.

ALTER LOGIN [login_name] DISABLE

عند تعطيل تسجيل الدخول، لا يمكن لمبدأ الخادم الاتصال بعد الآن. تعطيل تسجيل الدخول يمنع أيضا جميع مستخدمي قاعدة البيانات (المستخدمين) الذين أنشأتهم من ذلك الدخول من الاتصال بقواعد بياناتهم الخاصة.

Note

  • ALTER LOGIN login_name DISABLE لا يمكن التأثير على مستخدمي قاعدة البيانات المحتوى ، لأنهم غير مرتبطين بتسجيل الدخول.

  • ALTER LOGIN login_name DISABLEغير مدعوم لمجموعات Microsoft Entra.

  • لا يمكن أن يكون تسجيل الدخول الفردي المعطل ملكا لمستخدم هو جزء من مجموعة تسجيل الدخول التي أنشأتها في master قاعدة البيانات (على سبيل المثال، مجموعة مسؤول Microsoft Entra).

  • لجعل تغييرات DISABLE أو ENABLE تدخل حيز التنفيذ فورا، قم بمسح ذاكرة المصادقة وذاكرة TokenAndPermUserStore التخزين المؤقت باستخدام أوامر T-SQL التالية:

    DBCC FLUSHAUTHCACHE
    DBCC FREESYSTEMCACHE('TokenAndPermUserStore') WITH NO_INFOMSGS
    

القيود والملاحظات

  • لا يمكن لمسؤول خادم SQL إنشاء تسجيلات الدخول أو المستخدمين في Microsoft Entra في أي قواعد بيانات.
  • مجموعات SQL المخصصة في Azure Synapse Analytics workspaces لا تستخدم خوادم SQL المنطقية.
  • لا يمكن لمسؤول SQL أو مستخدم SQL تنفيذ العمليات التالية في Microsoft Entra:
    • CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDER
    • CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER
    • EXECUTE AS USER [bob@contoso.com]
    • ALTER AUTHORIZATION ON securable::name TO [bob@contoso.com]
  • Impersonation of Microsoft Entra server principals (logins) غير مدعوم ل Azure Synapse Analytics:
  • لا يمكن لتسجيل الدخول في Microsoft Entra أن يتداخل مع مسؤول Microsoft Entra. مسؤول Microsoft Entra له الأولوية على أي تسجيل دخول. إذا كان حساب Microsoft Entra لديه بالفعل وصول إلى الخادم كمسؤول Microsoft Entra، سواء بشكل فردي أو كجزء من مجموعة، فإن أي تسجيل دخول يتم إنشاؤه لهذا الحساب فلن يكون له أي تأثير. ومع ذلك، إنشاء تسجيل الدخول غير محظور عبر T-SQL. بعد أن يتحقق الحساب من الخادم، يكون تسجيل الدخول يحمل صلاحيات مسؤول Microsoft Entra الفعالة، وليس لتسجيل دخول تم إنشاؤه حديثا.
  • تغيير الأذونات على كائن تسجيل دخول معين في Microsoft Entra غير مدعوم:
    • GRANT <PERMISSION> ON LOGIN :: <Microsoft Entra account> TO <Any other login>
  • عندما تقوم بتعديل صلاحيات تسجيل الدخول إلى Microsoft Entra، فإن التغييرات تظهر بشكل افتراضي فقط في المرة التالية التي يتصل فيها تسجيل الدخول بمجموعة SQL المخصصة. أي اتصالات مفتوحة موجودة مع تسجيل الدخول لا تتأثر. لإجبار تغييرات الأذونات على أن تدخل حيز التنفيذ الفوري، يمكنك مسح المصادقة ومتجر TokenAndPermUserStore يدويا، كما هو موضح سابقا في تعطيل أو تمكين تسجيل الدخول باستخدام تسجيل الدخول ALTER. ينطبق هذا السلوك أيضا عند إجراء تغييرات في عضوية أدوار الخادم باستخدام ALTER SERVER ROLE.
  • في SQL Server Management Studio، أمر السكريبت لإنشاء مستخدم لا يتحقق مما إذا كان هناك تسجيل دخول master في Microsoft Entra بنفس الاسم. دائما ما يولد T-SQL لمستخدم قاعدة بيانات Microsoft Entra المحفوظة.
  • قد يحدث خطأ إذا كنت تحاول إنشاء تسجيل دخول أو مستخدم من جهة رئيسية للخدمة باسم عرض غير فريد. لمزيد من المعلومات حول التخفيف من هذا الخطأ، راجع اعتبارات الأسماء.
  • يمكن لمستخدمي قواعد البيانات الذين يتم إنشاؤهم باستخدام تسجيل الدخول إلى Microsoft Entra تأخيرات عند منحهم الأدوار والأذونات. إذا واجهت هذه المشكلة، استخدم الأوامر التالية:
    • قم بحذف المستخدم من قاعدة بيانات المستخدمين.
    • نفذ DBCC FREESYSTEMCACHE('TokenAndPermUserStore') لمسح كاشات الأمان على قاعدة البيانات.
    • نفذ DBCC FLUSHAUTHCACHE لمسح ذاكرة التحقق المؤقتة للسياق الفيدرالي.
    • أنشئ المستخدم بناء على تسجيل الدخول.

قيود أساسية خوادم المجموعة في Microsoft Entra

تنطبق القيود التالية على تسجيلات تسجيل دخول مجموعات Microsoft Entra في Azure Synapse Analytics:

  • أدوار الخوادم غير مدعومة لمجموعات Microsoft Entra.
  • إذا كان مسؤول SQL الخاص بك من مجموعة Microsoft Entra، يواجه مستخدمو تلك المجموعة بعض القيود عند الاتصال. كل مستخدم ل Microsoft Entra ليس مدرجا بشكل فردي في sys.server_principals الجدول. لهذا القيد عواقب متعددة، بما في ذلك المكالمات للعودة SUSER_SIDNULL.
  • تسجيلات الدخول لمستخدمي Microsoft Entra التي هي جزء من مجموعات Microsoft Entra لا تنشأ ضمنيا. هؤلاء المستخدمين لا يملكون مخططا افتراضيا ولا يمكنهم تنفيذ العمليات حتى CREATE SCHEMA تنشئ تسجيل دخول لمستخدم Microsoft Entra أو تعين مخططا افتراضيا للمجموعة.
  • لا يمكنك تغيير ملكية قاعدة البيانات إلى مجموعة Microsoft Entra كمالك قاعدة بيانات.
    • ALTER AUTHORIZATION ON database::<mydb> TO [my_aad_group] يفشل مع رسالة خطأ:

      Msg 33181, Level 16, State 1, Line 4
      The new owner cannot be Azure Active Directory group.
      

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