تفويض الوصول إلى قاعدة البيانات إلى قاعدة بيانات SQL ومثيل SQL المُدار وAzure Synapse Analytics
ينطبق على: Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics
في هذه المقالة، ستتعرف على:
- خيارات لتكوين Azure SQL Database ومثيل Azure SQL المُدار وAzure Synapse Analytics لتمكين المستخدمين من أداء المهام الإدارية والوصول إلى البيانات المخزنة في قواعد البيانات تلك.
- تكوين الوصول والترخيص بعد إنشاء خادم جديد في البداية.
- كيفية إضافة تسجيلات الدخول وحسابات المستخدمين في قاعدة البيانات الرئيسية وحسابات المستخدمين ومن ثم منح هذه الحسابات أذونات إدارية.
- كيفية إضافة حسابات مستخدمين في قواعد بيانات المستخدمين، إما مرتبطة بعمليات تسجيل الدخول أو كحسابات مستخدمين مضمنة.
- تكوين حسابات المستخدمين بأذونات في قواعد بيانات المستخدم باستخدام أدوار قاعدة البيانات والأذونات الصريحة.
هام
تتم الإشارة إلى قواعد البيانات في Azure SQL Database ومثيل Azure SQL المُدار وAzure Synapse بشكل جماعي في الجزء المتبقي من هذه المقالة كقواعد بيانات، ويشير الخادم إلى الخادم الذي يدير قواعد البيانات لـ Azure SQL Database وAzure Synapse.
المصادقة والتخويل
المصادقة هي عملية إثبات هوية المستخدم كما يدعي. يتصل المستخدم بقاعدة بيانات باستخدام حساب مستخدم. عندما يحاول مستخدم الاتصال بقاعدة بيانات، فإنها توفر حساب مستخدم ومعلومات المصادقة. تمت مصادقة المستخدم باستخدام إحدى طريقتين للمصادقة التاليتين:
-
باستخدام طريقة المصادقة تلك، يرسل المستخدم اسم حساب مستخدم وكلمة مرور مرتبطة به لإنشاء اتصال. يتم تخزين كلمة المرور تلك في قاعدة البيانات الرئيسية لحسابات المستخدمين المرتبطة بتسجيل الدخول أو المخزنة في قاعدة البيانات التي تحتوي على حسابات المستخدمين غير المرتبطة بتسجيل الدخول.
مصادقة Microsoft Azure Active Directory
باستخدام طريقة المصادقة تلك، يرسل المستخدم اسم حساب مستخدم ويطلب أن تستخدم الخدمة معلومات الاعتماد المخزنة في Microsoft Azure Active Directory (Azure AD).
عمليات تسجيل الدخول والمستخدمين: يمكن ربط حساب مستخدم في قاعدة بيانات بتسجيل دخول مخزن في قاعدة البيانات الرئيسية أو يمكن أن يكون اسم مستخدم مخزن في قاعدة بيانات فردية.
- يعد تسجيل الدخول حساباً فردياً في قاعدة البيانات الرئيسية، حيث يمكن ربط حساب مستخدم في قاعدة بيانات واحدة أو أكثر. مع تسجيل الدخول، يتم تخزين معلومات الاعتماد لحساب المستخدم مع تسجيل الدخول.
- حساب المستخدم هو حساب فردي في أي قاعدة بيانات قد تكون مرتبطة بتسجيل الدخول، ولكن ليس من الضروري أن تكون مرتبطة بها. باستخدام حساب مستخدم غير مرتبط بتسجيل الدخول، يتم تخزين معلومات الاعتماد مع حساب المستخدم.
تتم إدارةالتفويض للوصول إلى البيانات وتنفيذ إجراءات متنوعة باستخدام أدوار قاعدة البيانات والأذونات الصريحة. يشير التفويض إلى الأذونات المعينة للمستخدم، ويحدد ما يُسمح لهذا المستخدم بفعله. يتم التحكم في التفويض من خلال قاعدة بيانات حساب المستخدم عضويات الأدوار والأذونات على مستوى الكائن. وكأفضل ممارسة، ينبغي أن تمنح المستخدمين أقل الامتيازات اللازمة.
تسجيلات الدخول وحسابات المستخدمين الموجودة بعد إنشاء قاعدة بيانات جديدة
عندما تقوم بتوزيع Azure SQL لأول مرة، فإنك تحدد تسجيل دخول المسؤول وكلمة مرور مرتبطة لتسجيل الدخول هذا. يسمى هذا الحساب الإداري مشرف الخادم. يحدث التكوين التالي لعمليات تسجيل الدخول والمستخدمين في قواعد البيانات الرئيسية والمستخدم أثناء التوزيع:
- يتم إنشاء تسجيل دخول إلى SQL بامتيازات إدارية باستخدام اسم تسجيل الدخول الذي حددته. تسجيل الدخول هو حساب مستخدم فردي لتسجيل الدخول إلى قاعدة بيانات SQL وSQL Managed Instance وAzure Synapse.
- يُمنح تسجيل الدخول هذا أذونات إدارية كاملة على جميع قواعد البيانات بصفتهأساسياً على مستوى الخادم. تسجيل الدخول لديه جميع الأذونات المتاحة ولا يمكن تقييده. في مثيل مُدار من قِبل SQL، تتم إضافة تسجيل الدخول هذا إلى دور خادم ثابت لمسؤول النظام (هذا الدور غير موجود في Azure SQL Database).
- يتم إنشاء حساب مستخدم يسمى
dbo
لتسجيل الدخول هذا في كل قاعدة بيانات مستخدمة. يمتلك مستخدم dbo جميع أذونات قاعدة البيانات في قاعدة البيانات ويتم تعيينه إلى دور قاعدة البيانات الثابتdb_owner
. تتم مناقشة أدوار قاعدة البيانات الثابتة الإضافية لاحقاً في تلك المقالة.
لتحديد حسابات المسؤول لقاعدة بيانات، افتح مدخل Microsoft Azure، وانتقل إلى علامة التبويب Properties لخادمك أو مثيل مُدار.
هام
لا يمكن تغيير اسم تسجيل دخول المسؤول بعد إنشائه. لإعادة تعيين كلمة المرور لمسؤول الخادم، انتقل إلى مدخل Microsoft Azure، وانقر فوق SQL Servers، وحدد الخادم من القائمة، ثم انقر فوق Reset Password. لإعادة تعيين كلمة المرور لمثيل SQL المُدار، انتقل إلى مدخل Microsoft Azure، وانقر فوق المثيل، ثم انقر فوق Reset password. يمكنك أيضاً استخدام PowerShell أو Azure CLI.
إنشاء عمليات تسجيل دخول إضافية ومستخدمين لديهم أذونات إدارية
في تلك المرحلة، يتم تكوين الخادم أو المثيل المُدار فقط للوصول باستخدام تسجيل دخول وحساب مستخدم واحد SQL. لإنشاء عمليات تسجيل دخول إضافية بأذونات إدارية كاملة أو جزئية، لديك الخيارات التالية (حسب وضع التوزيع الخاص بك):
إنشاء حساب مسؤول Microsoft Azure Active Directory بأذونات إدارية كاملة
قم بتمكين مصادقةMicrosoft Azure Active Directory وأنشئ تسجيل دخول مسؤول Microsoft Azure Active Directory. يمكن تكوين حساب Microsoft Azure Active Directory واحد كمسؤول لتوزيع Azure SQL بأذونات إدارية كاملة. يمكن أن يكون هذا الحساب حساباً فردياً أو حساب مجموعة أمان. يجب تكوين مسؤول Microsoft Azure Active Directory إذا كنت تريد استخدام حسابات Microsoft Azure Active Directory للاتصال بقاعدة بيانات SQL أو مثيل SQL المُدار أو Azure Synapse. للحصول على معلومات مفصلة عن تمكين مصادقة Microsoft Azure Active Directory لجميع أنواع توزيع Azure SQL، راجع المقالات التالية:
في SQL Managed Instance، أنشئ عمليات تسجيل دخول إلى SQL بأذونات إدارية كاملة
- قم بإنشاء تسجيل دخول إضافي إلى SQL في قاعدة البيانات الرئيسية.
- أضف معلومات تسجيل الدخول إلى دور خادم مسؤول النظام الثابت باستخدام عبارة ALTER SERVER ROLE. سيحصل تسجيل الدخول هذا على أذونات إدارية كاملة.
- بدلاً من ذلك، أنشئ تسجيل دخول إلى Microsoft Azure Active Directory باستخدام بناء جملة إنشاء تسجيل الدخول.
في قاعدة بيانات SQL، أنشئ عمليات تسجيل دخول إلى SQL بأذونات إدارية محدودة
- قم بإنشاء تسجيل دخول إضافي إلى SQL في قاعدة البيانات الرئيسية.
- قم بإنشاء حساب مستخدم في قاعدة البيانات الرئيسية المرتبطة بتسجيل الدخول الجديد هذا.
- أضف حساب المستخدم إلى
dbmanager
أو الدورloginmanager
أو كليهما في قاعدة البياناتmaster
باستخدام العبارة ALTER ROLE (بالنسبة إلى Azure Synapse، استخدم العبارة sp_addrolemember ).
ملاحظة
dbmanager
وloginmanager
الأدوار لا تتعلقان بعمليات توزيع المثيل المُدار من SQL.يتمتع أعضاء أدوار قاعدة البيانات الرئيسية الخاصة لـ Azure SQL Database بالتحكم في إنشاء قواعد البيانات وإدارتها أو إنشاء عمليات تسجيل الدخول وإدارتها. في قواعد البيانات التي تم إنشاؤها بواسطة مستخدم عضو في الدور
dbmanager
، يتم تعيين العضو إلىdb_owner
دور قاعدة البيانات الثابتة ويمكنه تسجيل الدخول إلى قاعدة البيانات تلك وإدارتها باستخدام حساب المستخدمdbo
. لا تحتوي هذه الأدوار على أذونات صريحة خارج قاعدة البيانات الرئيسية.هام
لا يمكنك إنشاء تسجيل دخول إضافي إلى SQL بأذونات إدارية كاملة في قاعدة بيانات SQL.
إنشاء حسابات للمستخدمين غير المسؤولين
يمكنك إنشاء حسابات للمستخدمين غير الإداريين باستخدام إحدى الطريقتين:
إنشاء معلومات تسجيل دخول
قم بإنشاء تسجيل دخول إلى SQL في قاعدة البيانات الرئيسية. ثم قم بإنشاء حساب مستخدم في كل قاعدة بيانات يحتاج المستخدم للوصول إليها وربط حساب المستخدم بتسجيل الدخول هذا. يُفضل هذا الأسلوب عندما يتعين على المستخدم الوصول إلى قواعد بيانات متعددة وترغب في الحفاظ على مزامنة كلمات المرور. ومع ذلك، فإن هذا النهج به تعقيدات عند استخدامه مع النسخ المتماثل الجغرافي حيث يجب إنشاء تسجيل الدخول على كل من الخادم الأساسي والخادم (الخوادم) الثانوي. لمزيد من المعلومات، راجع تكوين وإدارة أمان Azure SQL Database للاستعادة الجغرافية أو تجاوز الفشل.
إنشاء حساب المستخدم
قم بإنشاء حساب مستخدم في قاعدة البيانات يحتاج المستخدم للوصول إليه (ويسمى أيضاً مستخدم مضمن).
- باستخدام قاعدة بيانات SQL، يمكنك دائماً إنشاء هذا النوع من حساب المستخدم.
- مع دعم مثيل SQL المُدار أساسيات خادم Microsoft Azure Active Directory، يمكنك إنشاء حسابات مستخدمين للمصادقة على مثيل SQL المُدار دون الحاجة إلى إنشاء مستخدمي قاعدة البيانات كمستخدم قاعدة بيانات مضمن.
باستخدام هذا النهج، يتم تخزين معلومات مصادقة المستخدم في كل قاعدة بيانات، ويتم نسخها تلقائياً إلى قواعد البيانات المنسوخة جغرافياً. ومع ذلك، إذا كان الحساب نفسه موجوداً في قواعد بيانات متعددة وكنت تستخدم مصادقة Azure SQL، فيجب أن تحافظ على مزامنة كلمات المرور يدوياً. بالإضافة إلى ذلك، إذا كان لدى المستخدم حساب في قواعد بيانات مختلفة بكلمات مرور مختلفة، فقد يصبح تذكر كلمات المرور تلك مشكلة.
هام
لإنشاء مستخدمين مضمنين تم تعيينهم لهويات Microsoft Azure Active Directory، يجب أن تقوم بتسجيل الدخول باستخدام حساب Microsoft Azure Active Directory في قاعدة البيانات في Azure SQL Database. في SQL Managed Instance، يمكن أن يؤدي تسجيل دخول SQL بأذونات أيضاً sysadmin
إلى إنشاء تسجيل دخول أو مستخدم Microsoft Azure Active Directory.
للحصول على أمثلة توضح كيفية إنشاء عمليات تسجيل الدخول والمستخدمين، راجع:
- إنشاء تسجيل دخول إلى Azure SQL Database
- إنشاء تسجيل دخول إلى Azure SQL Managed Instance
- إنشاء تسجيل دخول إلى Azure Synapse
- إعداد المستخدم
- اشتمل إنشاء Microsoft Azure Active Directory على مستخدمين
تلميح
للحصول على برنامج تعليمي للأمان يتضمن إنشاء مستخدمين في Azure SQL Database، راجع البرنامج التعليمي: الآمن Azure SQL Database.
استخدام أدوار قاعدة البيانات الثابتة والمخصصة
بعد إنشاء حساب مستخدم في قاعدة بيانات، إما بناءً على تسجيل دخول أو كمستخدم مضمّن، يمكنك تفويض هذا المستخدم لتنفيذ إجراءات مختلفة والوصول إلى البيانات في قاعدة بيانات معينة. يمكنك استخدام الطرق التالية للسماح بالوصول:
أدوار قاعدة البيانات الثابتة
أضف حساب المستخدم إلى دور قاعدة البيانات الثابتة. هناك 9 أدوار ثابتة لقاعدة البيانات، لكل منها مجموعة محددة من الأذونات. أدوار قاعدة البيانات الثابتة الأكثر شيوعاً هي: db_owner، db_ddladmin، db_datawriter، db_datareader، db_denydatawriter، وdb_denydatareader. يتم استخدامdb_owner بشكل شائع لمنح الإذن الكامل لعدد قليل فقط من المستخدمين. تعد أدوار قواعد البيانات الثابتة الأخرى مفيدة للحصول على قاعدة بيانات بسيطة قيد التطوير بسرعة، ولكن لا يُوصى بها لمعظم قواعد بيانات الإنتاج. على سبيل المثال، يمنح دور قاعدة البيانات الثابتة db_datareader حق الوصول للقراءة إلى كل جدول في قاعدة البيانات، وهو أكثر مما هو ضروري للغاية.
لإضافة مستخدم إلى دور قاعدة بيانات ثابتة:
- في Azure SQL Database، استخدم العبارة ALTER ROLE. للحصول على أمثلة، راجع أمثلة ALTER ROLE
- Azure Synapse، استخدم العبارة sp_addrolemember. للحصول على أمثلة، راجع أمثلة sp_addrolemember.
دور قاعدة البيانات المخصص
قم بإنشاء دور قاعدة بيانات مخصص باستخدام الكشف CREATE ROLE. يمكّنك الدور المخصص من إنشاء أدوار قاعدة البيانات الخاصة بك المعرفة من قِبل المستخدم ومنح كل دور أقل عناية الأذونات اللازمة لاحتياجات العمل. يمكنك بعد ذلك إضافة مستخدمين إلى الدور المخصص. عندما يكون المستخدم عضواً في أدوار متعددة، فإنهم يجمعون أذوناتهم جميعاً.
منح الأذونات مباشرة
امنح حساب المستخدم أذونات مباشرة. هناك أكثر من 100 إذن يمكن منحها أو رفضها بشكل فردي في قاعدة بيانات SQL. العديد من هذه الأذونات متداخلة. على سبيل المثال، يتضمن إذن
UPDATE
في مخطط ما الإذنUPDATE
في كل جدول داخل هذا المخطط. كما هو الحال في معظم أنظمة الأذونات، فإن رفض الإذن يتجاوز المنحة. نظراً إلى الطبيعة المتداخلة وعدد الأذونات، يمكن أن يتطلب الأمر دراسة متأنية لتصميم نظام أذونات مناسب لحماية قاعدة البيانات الخاصة بك بشكل صحيح. ابدأ بقائمة الأذونات في الأذونات (محرك قاعدة البيانات) وراجع رسم حجم الملصق للأذونات.
استخدام المجموعات
تستخدم إدارة الوصول الفعال الأذونات المعينة لمجموعات أمان خدمات مجال Active Directory والأدوار الثابتة أو المخصصة بدلاً من المستخدمين الفرديين.
عند استخدام مصادقة Microsoft Azure Active Directory، ضع مستخدمي Microsoft Azure Active Directory في مجموعة أمان Microsoft Azure Active Directory. إنشاء مستخدم قاعدة بيانات مضمن للمجموعة. أضف مستخدماً واحداً أو أكثر لقاعدة البيانات كعضو إلى أدوار قاعدة البيانات المخصصة أو المضمنة مع الأذونات المحددة المناسبة لتلك المجموعة من المستخدمين.
عند استخدام مصادقة SQL، قم بإنشاء مستخدمي قاعدة البيانات المضمنة في قاعدة البيانات. ضع مستخدماً واحداً أو أكثر من مستخدمي قاعدة البيانات في دور قاعدة بيانات مخصص مع أذونات محددة مناسبة لتلك المجموعة من المستخدمين.
ملاحظة
يمكنك أيضاً استخدام المجموعات لمستخدمي قاعدة البيانات غير المضمنة.
يجب أن تتعرف على الميزات التالية التي يمكن استخدامها لتقييد الأذونات أو رفعها:
- يمكن استخدامانتحال الهوية وتوقيع الوحدة لرفع الأذونات بشكل آمن مؤقتاً.
- يمكن استخدامRow-Level Security لتحديد الصفوف التي يمكن للمستخدم الوصول إليها.
- يمكن استخدامإخفاء البيانات للحد من عرض البيانات الحساسة.
- يمكن استخدامالإجراءات المخزنة للحد من الإجراءات التي يمكن اتخاذها في قاعدة البيانات.
الخطوات التالية
للحصول على نظرة عامة عن جميع ميزات أمان Azure SQL Database ومثيلات SQL المُدارة، راجع نظرة عامة على الأمان.