إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يحتوي Azure Synapse Analytics على عاملَي نموذج SQL يتيحان لك التحكم في استهلاك الموارد. تشرح هذه المقالة كيف يتحكم عاملا النموذج في مصادقة المستخدم.
للمصادقة على Synapse SQL، يمكنك استخدام خيارين:
- مصادقة Microsoft Entra
- مصادقة SQL
تمكن مصادقة SQL التطبيقات القديمة من الاتصال ب Azure Synapse SQL بطريقة مألوفة، مع اسم مستخدم وكلمة مرور. ومع ذلك، تسمح لك مصادقة Microsoft Entra بإدارة الوصول مركزيا إلى موارد Azure Synapse، مثل تجمعات SQL. يدعم Azure Synapse Analytics تعطيل المصادقة المحلية مثل مصادقة SQL أثناء إنشاء مساحة العمل وبعدها. يمكن للمستخدمين المعتمدين، بمجرد التعطيل، تمكين المصادقة المحلية في أي وقت. لمزيد من المعلومات حول مصادقة Microsoft Entra فقط، راجع تعطيل المصادقة المحلية في Azure Synapse Analytics.
الحسابات الإدارية
هناك حسابان إداريان (اسم مستخدم مسؤول SQL ومسؤول Microsoft Entra) يعملان كمسؤولين. لتحديد حسابات المسؤول هذه لتجمعات SQL، افتح مدخل Microsoft Azure، وانتقل إلى علامة التبويب «خصائص» في مساحة العمل Synapse.
اسم المستخدم المسؤول في SQL
عند إنشاء Azure Synapse Analytics، يجب عليك تسمية تسجيل دخول مسؤول الخادم. ينشئ خادم SQL هذا الحساب نظرًا لتسجيله الدخول إلى قاعدة البيانات
master. يتصل هذا الحساب باستخدام مصادقة SQL Server (اسم المستخدم وكلمة المرور). يمكن أن يوجد واحد فقط من هذه الحسابات.مسؤول Microsoft Entra
يمكن أيضا تكوين حساب Microsoft Entra واحد، إما حساب فردي أو حساب مجموعة أمان، كمسؤول. من الاختياري تكوين مسؤول Microsoft Entra، ولكن يجب تكوين مسؤول Microsoft Entra إذا كنت تريد استخدام حسابات Microsoft Entra للاتصال ب Synapse SQL.
- يتحكم حساب مسؤول Microsoft Entra في الوصول إلى تجمعات SQL المخصصة، بينما يمكن استخدام أدوار Synapse RBAC للتحكم في الوصول إلى التجمعات بلا خادم، على سبيل المثال، مع دور مسؤول Synapse وSynapse SQL Administrator .
اسم مستخدم مسؤول SQL وحسابات مسؤول Microsoft Entra لها الخصائص التالية:
- هي الحسابات الوحيدة التي يمكنها الاتصال تلقائيًا بأي قاعدة بيانات SQL على الخادم. (للاتصال بقاعدة بيانات المستخدم، يجب أن تكون الحسابات الأخرى إما مالك قاعدة البيانات أو لديها حساب مستخدم في قاعدة بيانات المستخدم.)
- تدخل هذه الحسابات قواعد بيانات المستخدم كمستخدم
dboولديهم جميع الأذونات في قواعد بيانات المستخدم. (يقوم مالك قاعدة بيانات المستخدم أيضا بإدخال قاعدة البيانات كمستخدمdbo.) - لا تدخل قاعدة البيانات
masterباعتبارك المستخدمdboولديك أذونات محدودة في قاعدة البياناتmaster. - ليسوا أعضاء في دور خادم SQL Server
sysadminالثابت القياسي، وهو غير متوفر في قاعدة بيانات SQL. - يمكن إنشاء وتعديل وإسقاط قواعد البيانات وعمليات تسجيل الدخول والمستخدمين في قاعدة البيانات
masterوقواعد جدار حماية عنوان IP على مستوى الخادم. - يمكن إضافة أعضاء إلى
dbmanagerالأدوار وloginmanagerوإزالتها. - يمكنه عرض
sys.sql_loginsجدول النظام.
إشعار
إذا تم تكوين مستخدم كمسؤول Microsoft Entra ومسؤول Synapse، ثم تمت إزالته من دور مسؤول Microsoft Entra، فسيفقد المستخدم الوصول إلى تجمعات SQL المخصصة في Synapse. يجب إزالتها ثم إضافتها إلى دور مسؤول Synapse لاستعادة الوصول إلى تجمعات SQL المخصصة.
لإدارة المستخدمين الذين لديهم حق الوصول إلى تجمع SQL بلا خادم، يمكنك استخدام الإرشادات أدناه.
لإنشاء تسجيل دخول إلى تجمع SQL بلا خادم، استخدم بناء الجملة التالي:
CREATE LOGIN Mary WITH PASSWORD = '<strong_password>';
-- or
CREATE LOGIN [Mary@domainname.net] FROM EXTERNAL PROVIDER;
يمكنك، بمجرد وجود تسجيل الدخول، إنشاء مستخدمين في قواعد البيانات الفردية داخل نقطة نهاية تجمع SQL بلا خادم ومنح الأذونات المطلوبة لهؤلاء المستخدمين. لإنشاء مستخدم، يمكنك استخدام بناء الجملة التالي:
CREATE USER Mary FROM LOGIN Mary;
-- or
CREATE USER Mary FROM LOGIN Mary@domainname.net;
-- or
CREATE USER [mike@contoso.com] FROM EXTERNAL PROVIDER;
بمجرد إنشاء تسجيل الدخول والمستخدم، يمكنك استخدام بناء جملة SQL Server العادي لمنح الحقوق.
المستخدمون غير المسؤولين
بشكل عام، لا تحتاج الحسابات غير الإدارية إلى الوصول إلى قاعدة البيانات master. إنشاء مستخدمي قاعدة البيانات المضمنة على مستوى قاعدة البيانات باستخدام عبارة CREATE USER (Transact-SQL).
يمكن أن يكون المستخدم مصادقة Microsoft Entra تحتوي على مستخدم قاعدة بيانات (إذا قمت بتكوين بيئتك لمصادقة Microsoft Entra)، أو مصادقة SQL Server تحتوي على مستخدم قاعدة بيانات، أو مستخدم مصادقة SQL Server استنادا إلى تسجيل دخول مصادقة SQL Server (تم إنشاؤه في الخطوة السابقة.)
لإنشاء مستخدمين، اتصل بقاعدة البيانات، وقم بتنفيذ عبارات مشابهة للأمثلة التالية:
CREATE USER Mary FROM LOGIN Mary;
CREATE USER [mike@contoso.com] FROM EXTERNAL PROVIDER;
مبدئيًا، يمكن لأحد المسؤولين أو مالك قاعدة البيانات فقط إنشاء مستخدمين. لتخويل مستخدمين إضافيين لإنشاء مستخدمين جدد، امنح هذا المستخدم ALTER ANY USER المحدد الإذن، باستخدام عبارة مثل:
GRANT ALTER ANY USER TO Mary;
لمنح مستخدمين إضافيين تحكما كاملا في قاعدة البيانات، اجعلهم عضوا في دور قاعدة البيانات الثابتة db_owner .
في قاعدة بيانات Azure SQL أو synapse بلا خادم، استخدم العبارة ALTER ROLE .
ALTER ROLE db_owner ADD MEMBER Mary;
في تجمع SQL المخصص، استخدم EXEC sp_addrolemember.
EXEC sp_addrolemember 'db_owner', 'Mary';
إشعار
أحد الأسباب الشائعة لإنشاء مستخدم قاعدة بيانات استنادًا إلى تسجيل دخول الخادم هو للمستخدمين الذين يحتاجون إلى الوصول إلى قواعد بيانات متعددة. نظرًا إلى أن مستخدمي قاعدة البيانات المضمنة هم كيانات فردية، فإن كل قاعدة بيانات تحتفظ بالمستخدم وكلمة المرور الخاصة بها. يمكن أن يتسبب هذا في زيادة العبء حيث يجب على المستخدم أن يتذكر بعد ذلك كل كلمة مرور لكل قاعدة بيانات، ويمكن أن يصبح غير مقبول عند الحاجة إلى تغيير كلمات مرور متعددة للعديد من قواعد البيانات.
المجموعات والأدوار
تستخدم إدارة الوصول الفعال الأذونات المعينة للمجموعات والأدوار بدلاً من المستخدمين الفرديين.
عند استخدام مصادقة Microsoft Entra، ضع مستخدمي Microsoft Entra في مجموعة Microsoft Entra. إنشاء مستخدم قاعدة بيانات مضمن للمجموعة. ضع مستخدما واحدا أو أكثر من مستخدمي قاعدة البيانات في دور قاعدة بيانات ثم قم بتعيين أذونات لدور قاعدة البيانات.
عند استخدام مصادقة SQL Server، قم بإنشاء مستخدمي قاعدة البيانات المضمنين في قاعدة البيانات. ضع مستخدما واحدا أو أكثر من مستخدمي قاعدة البيانات في دور قاعدة بيانات ثم قم بتعيين أذونات لدور قاعدة البيانات.
يمكن أن تكون أدوار قاعدة البيانات هي الأدوار المضمنة مثل db_owner db_ddladmin db_datawriter db_datareader db_denydatawriter db_denydatareader. يتم استخدامdb_owner بشكل شائع لمنح الإذن الكامل لعدد قليل فقط من المستخدمين. تعد أدوار قواعد البيانات الثابتة الأخرى مفيدة للحصول على قاعدة بيانات بسيطة قيد التطوير بسرعة، ولكن لا يُوصى بها لمعظم قواعد بيانات الإنتاج.
على سبيل المثال، يمنح دور قاعدة البيانات الثابتة db_datareader حق الوصول للقراءة إلى كل جدول في قاعدة البيانات، والذي يكون عادة أكثر مما هو ضروري تماما.
من الأفضل بكثير استخدام عبارة CREATE ROLE لإنشاء أدوار قاعدة البيانات الخاصة بك المعرفة من قبل المستخدم ومنح كل دور بعناية أقل الأذونات اللازمة لحاجة العمل. عندما يكون المستخدم عضوًا في أدوار متعددة، فإنهم يجمعون أذوناتهم جميعًا.
الأذونات
هناك أكثر من 100 إذن يمكن منحها أو رفضها بشكل فردي في قاعدة بيانات SQL. العديد من هذه الأذونات متداخلة. على سبيل المثال، يتضمن إذن UPDATE في مخطط ما الإذن UPDATE في كل جدول داخل هذا المخطط. كما هو الحال في معظم أنظمة الأذونات، فإن رفض الإذن يتجاوز المنحة.
نظرًا إلى الطبيعة المتداخلة وعدد الأذونات، يمكن أن يتطلب الأمر دراسة متأنية لتصميم نظام أذونات مناسب لحماية قاعدة البيانات الخاصة بك بشكل صحيح.
ابدأ بقائمة الأذونات في الأذونات (محرك قاعدة البيانات) وراجع رسومات حجم الملصق لأذونات مشغل قاعدة البيانات.
الاعتبارات والقيود
عند إدارة تسجيلات الدخول والمستخدمين في قاعدة بيانات SQL، ضع في اعتبارك النقاط التالية:
- يجب أن تكون متصلاً بقاعدة البيانات
masterعند تنفيذ العباراتCREATE/ALTER/DROP DATABASE. - لا يمكن تغيير مستخدم قاعدة البيانات المقابل لتسجيل دخول مسؤول الخادم أو إسقاطه.
- سيتم تعطيل مسؤول الخادم إذا تم تمكين مصادقة Microsoft Entra فقط.
- US-English هي اللغة الافتراضية لتسجيل دخول مسؤول الخادم.
- فقط المسؤولون (تسجيل دخول مسؤول الخادم أو مسؤول Microsoft Entra) وأعضاء دور قاعدة بيانات dbmanager في
masterقاعدة البيانات لديهم الإذن لتنفيذCREATE DATABASEعبارات وDROP DATABASE. - يجب أن تكون متصلاً بقاعدة البيانات
masterعند تنفيذ العباراتCREATE/ALTER/DROP LOGIN. إلا أنه لا يُنصح باستخدام عمليات تسجيل الدخول. استخدم مستخدمي قاعدة البيانات المضمنة بدلاً من ذلك. لمزيد من المعلومات، راجع مستخدمي قاعدة البيانات المضمنين- جعل قاعدة بياناتك قابلة للوصول. - للاتصال بقاعدة بيانات مستخدم، يجب توفير اسم قاعدة البيانات في سلسلة الاتصال.
- فقط تسجيل الدخول الأساسي على مستوى الخادم وأعضاء دور قاعدة بيانات loginmanager في
masterقاعدة البيانات لديهم إذن لتنفيذCREATE LOGINALTER LOGINعبارات و وDROP LOGIN. - عند تنفيذ
CREATE/ALTER/DROP LOGINعبارات وCREATE/ALTER/DROP DATABASEفي تطبيق ADO.NET، لا يسمح باستخدام الأوامر ذات المعلمات. لمزيد من المعلومات، راجع الأوامر والمعلمات. - عند تنفيذ العبارة
CREATE USERمعFOR/FROM LOGINالخيار ، يجب أن تكون العبارة الوحيدة في دفعة Transact-SQL. - عند تنفيذ العبارة
ALTER USERمعWITH LOGINالخيار ، يجب أن تكون العبارة الوحيدة في دفعة Transact-SQL. -
CREATE/ALTER/DROP LOGINولا يتم اعتماد عبارات وCREATE/ALTER/DROP USERعند تمكين مصادقة Microsoft Entra فقط لمساحة عمل Azure Synapse. -
CREATE/ALTER/DROPيتطلب المستخدم الإذن علىALTER ANY USERقاعدة البيانات. - عندما يحاول مالك دور قاعدة البيانات إضافة مستخدم قاعدة بيانات آخر إلى دور قاعدة البيانات هذا أو حذفه منه، فقد يحدث الخطأ التالي: المستخدم أو الدور "الاسم" غير موجود في قاعدة البيانات هذه. يحدث هذا الخطأ عندما يكون المستخدم غير مرئي للمالك. لحل هذه المشكلة، امنح مالك
VIEW DEFINITIONالدور الإذن على المستخدم.
المحتوى ذو الصلة
لمزيد من المعلومات، راجع مستخدمي قاعدة البيانات المضمنين- جعل قاعدة بياناتك قابلة للوصول.