البرنامج التعليمي: الأمان في مثيل 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 المُدار.
المتطلبات الأساسية
لإكمال البرنامج التعليمي، تأكد من توفر المتطلبات الأساسية التالية لديك:
- SQL Server Management Studio (SSMS)
- مثيل مُدار
- اتبع هذه المقالة: بداية سريعة: إنشاء مثيل مُدار
- قادر على الوصول إلى المثيل المُدار وتزويد مسؤول Microsoft Azure Active Directory للمثيل المُدار. لمعرفة المزيد، راجع:
تقييد الوصول
يمكن الوصول إلى المثيلات المُدارة من خلال عنوان 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:
- بداية سريعة: تكوين Azure VM للاتصال بـ SQL Managed Instance
- بداية سريعة: تكوين اتصال من نقطة إلى موقع بـ SQL Managed Instance من محلي
سجّل الدخول إلى المثيل المُدار باستخدام حساب تسجيل دخول SQL قياسي (غير Microsoft Azure Active Directory) يكون
sysadmin
أو مسؤول Microsoft Azure Active Directory لـ SQL Managed Instance، باستخدام SQL Server Management Studio .في Object Explorer، انقر بزر الماوس الأيمن فوق الخادم واختر New Query.
في نافذة الاستعلام، استخدم بناء الجملة التالي لإنشاء تسجيل دخول لحساب 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
في شريط الأدوات، حدد Execute لإنشاء تسجيل الدخول.
تحقق من تسجيل الدخول المضاف حديثًا، عن طريق تنفيذ أمر T-SQL التالي:
SELECT * FROM sys.server_principals; GO
لمزيد من المعلومات، راجع إنشاء تسجيل الدخول.
منح أذونات لإنشاء عمليات تسجيل الدخول
لإنشاء أساسيات خادم 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
:
قم بتسجيل الدخول إلى المثيل المُدار مرة أخرى، أو استخدم الاتصال الحالي بمسؤول Microsoft Azure Active Directory أو SQL الأساسي الذي يعد
sysadmin
.في Object Explorer، انقر بزر الماوس الأيمن فوق الخادم واختر New Query.
امنح أساس خادم Microsoft Azure Active Directory (تسجيل الدخول) دور الخادم
sysadmin
باستخدام بناء جملة T-SQL التالي:ALTER SERVER ROLE sysadmin ADD MEMBER login_name GO
المثال التالي يمنح
sysadmin
دور الخادم لتسجيل الدخولnativeuser@aadsqlmi.onmicrosoft.comALTER SERVER ROLE sysadmin ADD MEMBER [nativeuser@aadsqlmi.onmicrosoft.com] GO
إنشاء أساسيات إضافية لخادم Microsoft Azure Active Directory (تسجيلات الدخول) باستخدام SSMS
بمجرد إنشاء أساس خادم Microsoft Azure Active Directory (تسجيل الدخول)، وتزويده بامتيازات sysadmin
، يمكن لتسجيل الدخول هذا إنشاء عمليات تسجيل دخول إضافية باستخدام عبارة من الموفر الخارجي باستخدام CREATE LOGIN.
اتصل بالمثيل المُدار باستخدام خادم Microsoft Azure Active Directory الأساسي (تسجيل الدخول)، باستخدام SQL Server Management Studio. أدخل اسم مضيف SQL Managed Instance الخاص بك. للمصادقة في SSMS، توجد ثلاثة خيارات للاختيار من بينها عند تسجيل الدخول باستخدام حساب Microsoft Azure Active Directory:
Active Directory - Universal with MFA support
Active Directory - Password
Active Directory - متكامل
لمزيد من المعلومات، راجع المصادقة العامة (دعم SSMS للمصادقة متعددة العوامل).
حدد Active Directory - Universal with MFA support. يؤدي هذا إلى إظهار نافذة Multi-Factor Authentication. سجّل الدخول باستخدام كلمة مرور Microsoft Azure Active Directory.
في SSMS Object Explorer، انقر بزر الماوس الأيمن فوق الخادم واختر New Query.
في نافذة الاستعلام، استخدم بناء الجملة التالي لإنشاء تسجيل دخول لحساب 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
أنشئ قاعدة بيانات في المثيل المُدار باستخدام بناء الجملة CREATE DATABASE. ستُستخدم قاعدة البيانات هذه لاختبار تسجيلات دخول المستخدمين في القسم التالي.
في Object Explorer، انقر بزر الماوس الأيمن فوق الخادم واختر New Query.
في نافذة الاستعلام، استخدم بناء الجملة التالي لإنشاء قاعدة بيانات باسم MyMITestDB.
CREATE DATABASE MyMITestDB; GO
قم بإنشاء تسجيل دخول مثيل مُدار لـ SQL لمجموعة في Microsoft Azure Active Directory. يجب أن تكون المجموعة موجودة في Microsoft Azure Active Directory قبل أن تتمكن من إضافة تسجيل الدخول إلى مثيل SQL المُدار. راجع إنشاء مجموعة أساسية وإضافة أعضاء باستخدام Microsoft Azure Active Directory. قم بإنشاء مجموعة mygroup وقم بإضافة أعضاء إلى هذه المجموعة.
افتح نافذة استعلام جديدة في SQL Server Management Studio.
يفترض هذا المثال وجود مجموعة تسمى mygroup في Microsoft Azure Active Directory. تنفيذ الأمر التالي:
USE master GO CREATE LOGIN [mygroup] FROM EXTERNAL PROVIDER GO
كاختبار، قم بتسجيل الدخول إلى المثيل المُدار باستخدام تسجيل الدخول أو المجموعة المنشأة حديثًا. افتح اتصالاً جديدًا للمثيل المُدار، واستخدم تسجيل الدخول الجديد عند المصادقة.
في Object Explorer، انقر بزر الماوس الأيمن فوق الخادم واختر New Query للاتصال الجديد.
تحقق من أذونات الخادم لمبدأ خادم 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 الذي يحتوي على الأذونات الافتراضية، وحاولت توسيع قاعدة البيانات التي تم إنشاؤها حديثًا، فسترى الخطأ التالي:
لمزيد من المعلومات حول منح أذونات قاعدة البيانات، راجع الشروع في استخدام أذونات محرك قاعدة البيانات.
أنشئ مستخدم Microsoft Azure Active Directory وأنشئ جدولاً نموذجيًا
قم بتسجيل الدخول إلى المثيل المُدار باستخدام حساب
sysadmin
باستخدام SQL Server Management Studio.في Object Explorer، انقر بزر الماوس الأيمن فوق الخادم واختر New Query.
في نافذة الاستعلام، استخدم بناء الجملة التالي لإنشاء مستخدم 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
يتم دعمه أيضًا لإنشاء مستخدم 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 الأساسي (تسجيل الدخول)، حدد اسم المستخدم كاسم تسجيل الدخول نفسه من تسجيل الدخول.
لمزيد من المعلومات، راجع إنشاء مستخدم.
في نافذة استعلام جديدة، قم بإنشاء جدول اختبار باستخدام أمر T-SQL التالي:
USE MyMITestDB GO CREATE TABLE TestTable ( AccountNum varchar(10), City varchar(255), Name varchar(255), State varchar(2) );
قم بإنشاء اتصال في SSMS مع المستخدم الذي تم إنشاؤه. ستلاحظ أنه لا يمكنك رؤية الجدول TestTable الذي تم إنشاؤه بواسطة
sysadmin
سابقًا. نحتاج إلى تزويد المستخدم بالأذونات لقراءة البيانات من قاعدة البيانات.يمكنك التحقق من الإذن الحالي الذي يمتلكه المستخدم عن طريق تنفيذ الأمر التالي:
SELECT * FROM sys.fn_my_permissions('MyMITestDB','DATABASE') GO
أضف المستخدمين إلى الأدوار على مستوى قاعدة البيانات
لكي يرى المستخدم البيانات في قاعدة البيانات، يمكننا تزويد أدوار على مستوى قاعدة البيانات للمستخدم.
قم بتسجيل الدخول إلى المثيل المُدار باستخدام حساب
sysadmin
باستخدام SQL Server Management Studio.في Object Explorer، انقر بزر الماوس الأيمن فوق الخادم واختر New Query.
امنح مستخدم 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
تحقق من وجود مستخدم Microsoft Azure Active Directory الذي تم إنشاؤه في قاعدة البيانات عن طريق تنفيذ الأمر التالي:
SELECT * FROM sys.database_principals GO
قم بإنشاء اتصال جديد للمثيل المُدار مع المستخدم الذي تمت إضافته إلى الدور
db_datareader
.قم بتوسيع قاعدة البيانات في مستكشف الكائنات لمشاهدة الجدول.
افتح نافذة استعلام جديدة وقم بتنفيذ عبارة SELECT التالية:
SELECT * FROM TestTable
هل تستطيع رؤية البيانات من الجدول؟ يجب أن ترى الأعمدة يتم إرجاعها.
انتحال شخصية أساسيات مستوى خادم Microsoft Azure Active Directory (عمليات تسجيل الدخول)
يدعم SQL Managed Instance انتحال صفة أساسيات مستوى الخادم Microsoft Azure Active Directory (تسجيلات الدخول).
اختبار انتحال الهوية
قم بتسجيل الدخول إلى المثيل المُدار باستخدام حساب
sysadmin
باستخدام SQL Server Management Studio.في Object Explorer، انقر بزر الماوس الأيمن فوق الخادم واختر New Query.
في نافذة الاستعلام، استخدم الأمر التالي لإنشاء إجراء مخزن جديد:
USE MyMITestDB GO CREATE PROCEDURE dbo.usp_Demo WITH EXECUTE AS 'bob@aadsqlmi.net' AS SELECT user_name(); GO
استخدم الأمر التالي لمعرفة أن المستخدم الذي تنتحل هويته عند تنفيذ الإجراء المخزن هو bob@aadsqlmi.net.
Exec dbo.usp_Demo
اختبار الانتحال باستخدام عبارة 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، نحتاج إلى إنشاء قاعدة بيانات وجدول آخر. يمكنك تخطي إنشاء قاعدة بيانات وجدول آخر إذا كان أحدهما موجودًا بالفعل.
قم بتسجيل الدخول إلى المثيل المُدار باستخدام حساب
sysadmin
باستخدام SQL Server Management Studio.في Object Explorer، انقر بزر الماوس الأيمن فوق الخادم واختر New Query.
في نافذة الاستعلام، استخدم الأمر التالي لإنشاء قاعدة بيانات باسم MyMITestDB2 وجدول باسم TestTable2:
CREATE DATABASE MyMITestDB2; GO USE MyMITestDB2 GO CREATE TABLE TestTable2 ( EmpId varchar(10), FirstName varchar(255), LastName varchar(255), Status varchar(10) );
في نافذة استعلام جديدة، قم بتنفيذ الأمر التالي لإنشاء المستخدم mygroup في قاعدة البيانات الجديدة MyMITestDB2، ومنح أذونات SELECT في قاعدة البيانات هذه لـ مجموعتي:
USE MyMITestDB2 GO CREATE USER [mygroup] FROM LOGIN [mygroup] GO GRANT SELECT TO [mygroup] GO
قم بتسجيل الدخول إلى المثيل المُدار باستخدام 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
- مشفر دومًا
- اكتشاف التهديد
- إخفاء البيانات الديناميكية
- أمان على مستوى الصف
- تشفير البيانات الشفاف (TDE)
قدرات مثيل مدارة SQL
للحصول على نظرة عامة كاملة حول إمكانيات المثيل المُدار من SQL، راجع: