البرنامج التعليمي: تأمين قاعدة بيانات في قاعدة بيانات Azure SQL

ينطبق على: قاعدة بيانات Azure SQL

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

  • إنشاء قواعد جدار حماية على مستوى الخادم وقاعدة بيانات
  • تكوين مسؤول Azure Active Directory (Azure AD)
  • إدارة وصول المستخدم باستخدام مصادقة SQL ومصادقة Azure AD وسلاسل الاتصال الآمنة
  • قم بتمكين ميزات الأمان، مثل Microsoft Defender لـ SQL والتدقيق وإخفاء البيانات والتشفير

تؤمن قاعدة بيانات Azure SQL البيانات من خلال إتاحة ما يلي:

  • تقييد الوصول باستخدام قواعد جدر الحماية
  • استخدام آليات المصادقة التي تتطلب هوية
  • استخدام المصادقة مع العضويات والأذونات استناداً إلى الأدوار
  • تمكين ميزات الأمان

ملاحظة

يؤمن Azure SQL Managed Instance باستخدام قواعد أمان الشبكة كما هو موضح في Azure SQL Managed Instanceوهيكل الاتصال.

لمعرفة المزيد، راجع المقالات "نظرة عامة حول أمان قاعدة بيانات Azure SQL والإمكانيات".

تلميح

تساعدك الوحدة النمطية التالية لـ Microsoft Learn على معرفة كيفية تأمين قاعدة البيانات في قاعدة بيانات Azure SQL مجاناً.

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

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

إذا لم يكن لديك اشتراك في Azure، فأنشئ free account قبل البدء.

سجِّل الدخول إلى مدخل Microsoft Azure

لجميع الخطوات في البرنامج التعليمي، سجل الدخول إلى مدخل Azure

إنشاء قواعد جدار الحماية

تكون قواعد البيانات في قاعدة بيانات SQL محمية بواسطة جدر الحماية في Azure. بشكل افتراضي، يتم رفض جميع الاتصالات إلى الخادم وقاعدة البيانات. لمعرفة المزيد، راجع قواعد جدار الحماية على مستوى الخادم وقاعدة البيانات.

تعيين السماح بالوصول إلى خدمات Azure إلى "OFF" لتكوين أكثر أماناً. ثم قم بإنشاء بروتوكول IP مخصص (النشر التقليدي) للموارد التي تحتاج إلى الاتصال، كخدمة (Azure VM) أو خدمة السحابة، مع السماح فقط بالوصول إلى عنوان بروتوكول IP من خلال جدار الحماية. إذا كنت تستخدم نموذج نشر إدارة الموارد، يلزم استخدام عنوان IP عام مخصص لكل مورد.

ملاحظة

تتوصل قاعدة بيانات SQL عبر منفذ 1433. إذا كنت تحاول الاتصال ضمن شبكة المؤسسة، فقد لا يسمح جدار حماية الشبكة بنقل البيانات الصادرة عبر المنفذ 1433. إذا كان الأمر كذلك، لا يمكنك الاتصال بالخادم إلا إذا فتح المسؤول المنفذ 1433.

إعداد قواعد جدار الحماية على مستوى الخادم

تنطبق قواعد جدار حماية بروتوكول IP على مستوى الخادم على جميع قواعد البيانات داخل الخادم ذاته.

لإعداد قاعدة جدار حماية على مستوى الخادم:

  1. في مدخل Azure، حدد "SQL databases" من القائمة اليسرى، وحدد قاعدة البيانات الخاصة بك في صفحة "SQL databases" .

    server firewall rule

    ملاحظة

    تأكد من نسخ اسم الخادم المؤهل بالكامل (مثل "yourserver.database.windows.net") لاستخدامه لاحقاً في البرنامج التعليمي.

  2. في صفحة "Overview"، حدد "Set server firewall" . فتح صفحة "Firewall settings" للخادم.

    1. حدد "Add client IP" على شريط الأدوات لإضافة عنوان IP الحالي إلى قاعدة جدار حماية جديدة. يمكن أن تفتح القاعدة المنفذ 1433 لعنوان IP واحد أو نطاق من عناوين IP. حدد ⁧⁩حفظ⁧⁩.

      set server firewall rule

    2. حدد "OK" ثم أغلق صفحة "Firewall settings".

يمكنك الآن الاتصال بأي قاعدة بيانات في الخادم باستخدام عنوان IP المحدد أو نطاق عنوان IP.

إعداد قواعد جدار حماية قاعدة بيانات

تنطبق قواعد جدار الحماية على مستوى قاعدة البيانات فقط على قواعد البيانات الأحادية. تحتفظ قاعدة البيانات بهذه القواعد أثناء تجاوز فشل الخادم. يمكن تكوين قواعد جدار الحماية على مستوى قاعدة البيانات فقط باستخدام عبارات "Transact-SQL" (T-SQL)، بعد تكوين قاعدة جدار حماية على مستوى الخادم فقط.

لإعداد قاعدة جدار حماية على مستوى الخادم:

  1. الاتصال بقاعدة البيانات، على سبيل المثال باستخدام SQL Server Management Studio.

  2. في مستكشف العناصر، انقر بزر الماوس الأيمن فوق "database" وحدد "New Query" .

  3. في نافذة الاستعلام، أضف هذه العبارة وعدل عنوان IP إلى عنوان IP العام الخاص بك:

    EXECUTE sp_set_database_firewall_rule N'Example DB Rule','0.0.0.4','0.0.0.4';
    
  4. في شريط الأدوات، حدد "Execute" لإنشاء قاعدة جدار الحماية.

ملاحظة

يمكنك أيضاً إنشاء قاعدة جدار حماية على مستوى الخادم في SSMS باستخدام الأمر "sp_set_firewall_rule"، رغم أنه يجب أن تكون متصلاُ بقاعدة البيانات "الرئيسية".

إنشاء مسؤول Azure AD

تأكد من استخدام المجال المناسب المدار في Azure Active Directory (AD). لتحديد مجال AD، استخدم الزاوية العلوية اليمنى من مدخل Azure. تؤكد هذه العملية استخدام الاشتراك ذاته لكل من Azure AD وSQL server المنطقي الذي يستضيف قاعدة البيانات أو مستودع البيانات.

choose-ad

لتعيين مسؤول Azure AD:

  1. في مدخل Azure، في صفحة "SQL server"، حدد "Active Directory admin" . ثم حدد "Set admin" .

    select active directory

    هام

    يجب أن تكون "مسؤول عام" لتنفيذ هذه المهمة.

  2. في صفحة "Add admin"، ابحث وحدد "AD user or group" واختر "Select" . يتم سرد جميع أعضاء ومجموعات Active Directory، ولا يتم دعم الإدخالات المعتمة كمسؤولين Azure AD. راجع ميزات وقيود Azure AD.

    select admin

    هام

    ينطبق عنصر التحكم في الوصول استناداً إلى الدور Azure (Azure RBAC) على المدخل فقط ولا يتم نشره على SQL Server.

  3. في أعلى صفحة "Active Directory admin"، حدد "Save" .

    قد تستغرق عملية تغيير مسؤول عدة دقائق. يظهر المسؤول الجديد في خانة "Active Directory admin" .

ملاحظة

عند تعيين مسؤول Azure AD، لا يمكن أن يكون اسم المسؤول الجديد (مستخدم أو مجموعة) موجوداً كتسجيل الدخول إلى SQL Server أو مستخدم في قاعدة البيانات "الرئيسية". إذا كان موجودا، لن تنج عملية الإعداد والتراجع عن التغييرات، مشيراً إلى أن اسم المسؤول هذا موجود بالفعل. نظرا لأن تسجيل الدخول إلى SQL Server أو المستخدم ليس جزءاً من Azure AD، فإن أي محاولة للاتصال بالمستخدم باستخدام مصادقة Azure AD تفشل.

للحصول على معلومات حول تكوين Azure AD، راجع:

إدارة الوصول إلى قاعدة البيانات

إدارة الوصول إلى قاعدة البيانات عن طريق إضافة مستخدمين إلى قاعدة البيانات، أو السماح بوصول المستخدم باستخدام سلاسل اتصال آمنة. سلاسل الاتصال مفيدة للتطبيقات الخارجية. لمعرفة المزيد، راجع إدارة عمليات تسجيل الدخول وحسابات المستخدمينومصادقة AD.

لإضافة مستخدمين، اختر نوع مصادقة قاعدة البيانات:

  • مصادقة SQL، استخدم اسم مستخدم وكلمة مرور لعمليات تسجيل الدخول وهي صالحة فقط في سياق قاعدة بيانات محددة داخل الخادم

  • مصادقة Azure AD، استخدم الهويات المدارة بواسطة Azure AD

مصادقة SQL

لإضافة مستخدم مع مصادقة SQL:

  1. الاتصال بقاعدة البيانات، على سبيل المثال باستخدام SQL Server Management Studio.

  2. في مستكشف العناصر، انقر بزر الماوس الأيمن فوق "database" وحدد "New Query" .

  3. في إطار الاستعلام، أدخل الأمر التالي:

    CREATE USER ApplicationUser WITH PASSWORD = 'YourStrongPassword1';
    
  4. في شريط الأدوات، حدد "Execute" لإنشاء المستخدم.

  5. بشكل افتراضي، يمكن للمستخدم الاتصال بقاعدة البيانات، ولكن ليس لديه أذونات لقراءة أو كتابة البيانات. لمنح هذه الأذونات، نفذ الأوامر التالية في نافذة استعلام جديدة:

    ALTER ROLE db_datareader ADD MEMBER ApplicationUser;
    ALTER ROLE db_datawriter ADD MEMBER ApplicationUser;
    

ملاحظة

إنشاء حسابات غير إدارية على مستوى قاعدة البيانات، إلا إذا كانت بحاجة إلى تنفيذ مهام المسؤول مثل إنشاء مستخدمين جدد.

مصادقة Azure AD

تتطلب مصادقة Azure Active Directory إنشاء مستخدمي قاعدة البيانات كما هو مضمن. تعيين مستخدم قاعدة بيانات مضمنة إلى هوية في دليل Azure AD المقترنة بقاعدة البيانات ولن يتم تسجيل الدخول إلى قاعدة البيانات "الرئيسية" . يمكن أن تمنح هوية Azure AD لمستخدم فردي أو مجموعة. لمزيد من المعلومات، راجع مستخدمي قاعدة البيانات المضمنة، مع جعل قاعدة البيانات المحمولة ومراجعة البرنامج التعليمي Azure AD حول كيفية المصادقة باستخدام Azure AD.

ملاحظة

لا يمكن إنشاء مستخدمي قاعدة البيانات (باستثناء المسؤولين) باستخدام مدخل Azure. لا يتم نشر أدوار Azure إلى SQL servers أو قواعد البيانات أو مستودعات البيانات. تُستخدم فقط لإدارة موارد Azure ولا تنطبق على أذونات قاعدة البيانات.

على سبيل المثال، لا يمنح دور مساهم SQL Server حق الوصول إلى الاتصال بقاعدة بيانات أو مستودع بيانات. يجب منح هذا الإذن داخل قاعدة البيانات باستخدام عبارات "T-SQL".

هام

لا تُدعم أحرف خاصة مثل علامة النقطتين: أو علامة العطف& في أسماء المستخدمين في T-SQL CREATE LOGIN وCREATE USERالعبارات.

لإضافة مستخدم مع مصادقة Azure AD:

  1. اتصل بالخادم في Azure باستخدام حساب Azure AD باستخدام الأذن "ALTER ANY USER" على الأقل.

  2. في مستكشف العناصر، انقر بزر الماوس الأيمن فوق "database" وحدد "New Query" .

  3. في نافذة الاستعلام، أدخل الأمر التالي ثم عدل <Azure_AD_principal_name> الاسم الأساسي لمستخدم Azure AD أو اسم العرض لمجموعة Azure AD:

    CREATE USER [<Azure_AD_principal_name>] FROM EXTERNAL PROVIDER;
    

ملاحظة

يتم وضع علامة على مستخدمي Azure AD في بيانات تعريف قاعدة البيانات بنوع E (EXTERNAL_USER) ونوع X (EXTERNAL_GROUPS) للمجموعات. لمزيد من المعلومات، راجع "sys.database_principals".

تأمين سلاسل اتصال

لضمان اتصال آمن ومشفر بين تطبيق العميل وقاعدة بيانات SQL، ويجب تكوين سلسلة اتصال لإجراء التالي:

  • طلب اتصال مشفر
  • عدم الثقة في شهادة الخادم

يُقام الاتصال باستخدام "بروتوكول أمان طبقة النقل" ويُحد من خطر هجوم دخيل. تتوفر سلاسل الاتصال لكل قاعدة بيانات ويتم تكوينها مسبقاً لدعم برامج تشغيل العملاء مثل ADO.NET وJDBC وODBC وPHP. للحصول على معلومات حول TLS والاتصال، راجع اعتبارات TLS.

لنسخ سلاسل اتصال مؤمنة:

  1. في مدخل Azure، حدد "SQL databases" من القائمة اليسرى، وحدد قاعدة البيانات الخاصة بك في صفحة "SQL databases" .

  2. في صفحة "Overview"، حدد "Show database connection strings" .

  3. حدد علامة تبويب برنامج التشغيل وانسخ سلسلة الاتصال الكاملة.

    ADO.NET connection string

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

توفر قاعدة بيانات Azure SQL ميزات الأمان التي يتم الوصول إليها باستخدام مدخل Azure. تتوفر هذه الميزات لقاعدة البيانات والخادم، باستثناء إخفاء البيانات، والذي يتوفر فقط على قاعدة البيانات. لمعرفة المزيد، راجع Microsoft Defender for SQL والتدقيق وإخفاء البيانات الديناميكية وتشفير البيانات الخارجية.

Microsoft Defender لـ SQL

تكتشف ميزة Microsoft Defender for SQL التهديدات المحتملة فور حدوثها وتوفر تنبيهات الأمان بشأن الأنشطة الشاذة. يمكن للمستخدمين استكشاف هذه الأحداث المشكوك فيها باستخدام ميزة التدقيق، وتحديد ما إذا كان الحدث هو الوصول إلى البيانات في قاعدة البيانات أو اختراقها أو استغلالها. يُزود المستخدمون أيضاً بنظرة عامة حول الأمان، بما في ذلك تقييم مشكلة الثغرات الأمنية وأداة اكتشاف البيانات وتصنيفها.

ملاحظة

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

لتمكين Microsoft Defender لـ SQL:

  1. في مدخل Azure، حدد "SQL databases" من القائمة اليسرى، وحدد قاعدة البيانات الخاصة بك في صفحة "SQL databases" .

  2. في صفحة "Overview" ، حدد "Server name link" . تفتح صفحة الخادم.

  3. في صفحة SQL serve، ابحث عن قسم Security وحدد Defender for Cloud.

    1. حدد ON ضمن Microsoft Defender for SQL لتمكين الميزة. اختر حساب تخزين لحفظ نتائج تقييم الثغرات الأمنية. ثم اختر ⁧⁩حفظ⁧⁩.

      Navigation pane

      يمكنك أيضاً تكوين رسائل البريد الإلكتروني لاستلام تنبيهات الأمان وتفاصيل التخزين وأنواع الكشف عن المخاطر.

  4. ارجع إلى صفحة SQL databases في قاعدة البيانات وحدد Defender for Cloud ضمن قسم Security. ستجد هنا مؤشرات أمان مختلفة متاحة لقاعدة البيانات.

    Threat status

إذا تم الكشف عن أنشطة غير معروفة، تتلقى رسالة بريد إلكتروني مع معلومات عن الحدث. يشمل ذلك طبيعة النشاط وقاعدة البيانات والخادم ووقت الحدث والأسباب المحتملة والإجراءات الموصى بها للتحقيق في الخطر المحتمل وتخفيفه. إذا استلمت مثل هذا البريد الإلكتروني، حدد رابط Azure SQL Auditing Log لبدء تشغيل مدخل Azure وعرض سجلات التدقيق المتعلقة بوقت الحدث.

Threat detection email

التدقيق

تتبع ميزة التدقيق أحداث قواعد البيانات وتدوينها في سجل تدقيق في إما في سجلات تخزين Azure أو Azure Monitor أو مركز الحدث. تساعد عملية التدقيق في الحفاظ على التوافق التنظيمي وفهم نشاط قاعدة البيانات وتكوين فكرة حول الاختلافات والحالات غير الطبيعية التي قد تشير إلى مخالفات أمنية محتملة.

لتمكين التدقيق:

  1. في مدخل Azure، حدد "SQL databases" من القائمة اليسرى، وحدد قاعدة البيانات الخاصة بك في صفحة "SQL databases" .

  2. في قسم "Security"، حدد "Auditing" .

  3. أسفل إعدادات "Auditing" ، عين القيم التالية:

    1. اضبط ⁧⁩التدقيق⁧⁩على⁧⁩تشغيل⁧

    2. حدد "Audit log destination" كأي مما يلي:

      • التخزين، حساب تخزين Azure يتم حفظ سجلات الأحداث فيه ويمكن تنزيلها كملفات .xel

        تلميح

        استخدم حساب التخزين ذاته لجميع قواعد البيانات المدققة للاستفادة إلى أقصى حد من قوالب تقرير التدقيق.

      • Log Analytics، الذي يخزن الأحداث تلقائيا للاستعلام أو لإجراء المزيد من التحليل

        ملاحظة

        مطلوب Log Analytics workspace لدعم الميزات المتقدمة كالتحليلات وقواعد التنبيه المخصصة وعمليات تصدير Excel أو Power BI. يتوفر محرر الاستعلام فقط دون مساحة عمل.

      • Event Hub، والذي يسمح بتوجيه الأحداث لاستخدامها في تطبيقات أخرى

    3. حدد ⁧⁩حفظ⁧⁩.

      Audit settings

  4. يمكنك الآن تحديد "View audit logs" لعرض بيانات أحداث قاعدة البيانات.

    Audit records

هام

راجع تدقيق قاعدة بيانات SQL حول كيفية تخصيص أحداث التدقيق باستخدام PowerShell أو واجهة برمجة تطبيقات REST.

إخفاء البيانات الديناميكي

تخفي ميزة إخفاء البيانات تلقائياً البيانات الحساسة في قاعدة البيانات.

لتمكين إخفاء البيانات:

  1. في مدخل Azure، حدد "SQL databases" من القائمة اليسرى، وحدد قاعدة البيانات الخاصة بك في صفحة "SQL databases" .

  2. في قسم "Security" حدد "Dynamic Data Masking" .

  3. أسفل إعدادات "Dynamic data masking" حدد "Add mask" لإضافة قاعدة إخفاء. يقوم Azure تلقائياً بملء مخططات قاعدة البيانات والجداول والأعمدة المتوفرة للاختيار من بينها.

    Mask settings

  4. حدد ⁧⁩حفظ⁧⁩. تُعد المعلومات المحددة مقمعة الآن للخصوصية.

    Mask example

تشفير البيانات الشفاف

تُشفر ميزة التشفير تلقائياً بياناتك في حالة السكون، ولا تتطلب أي تغييرات على التطبيقات التي تقوم بالوصول إلى قاعدة البيانات المشفرة. بالنسبة لقواعد البيانات الجديدة، يتم تشغيل التشفير بشكل افتراضي. يمكنك أيضاً تشفير البيانات باستخدام SSMS وميزة Always Encrypted.

لتمكين أو التحقق من التشفير:

  1. في مدخل Azure، حدد "SQL databases" من القائمة اليسرى، وحدد قاعدة البيانات الخاصة بك في صفحة "SQL databases" .

  2. في قسم "Security"، حدد "Transparent data encryption" .

  3. إذا لزم الأمر، عين "Data encryption" إلى "ON" . حدد ⁧⁩حفظ⁧⁩.

    Transparent Data Encryption

ملاحظة

لعرض حالة التشفير، اتصل بقاعدة البيانات باستخدام SSMS واستعلام encryption_state عن طريقة عرض العمود "sys.dm_database_encryption_keys". الحالة 3 تشير إلى أن قاعدة البيانات مشفرة.

ملاحظة

قد يتم إرسال بعض العناصر التي تأخذ محتوى العميل بعين الاعتبار، مثل أسماء الجداول وأسماء الكائنات وأسماء الفهارس، في ملفات السجل للحصول على الدعم واستكشاف الأخطاء وإصلاحها بواسطة Microsoft.

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

في هذا البرنامج التعليمي، تعلمت كيفية تحسين أمان قاعدة البيانات مع بضع خطوات بسيطة. تعلمت كيفية القيام بالتالي:

  • إنشاء قواعد جدار حماية على مستوى الخادم وقاعدة بيانات
  • تكوين مسؤولAzure Active Directory (Azure AD)
  • إدارة وصول المستخدم باستخدام مصادقة SQL ومصادقة Azure AD وسلاسل الاتصال الآمنة
  • قم بتمكين ميزات الأمان، مثل Microsoft Defender لـ SQL والتدقيق وإخفاء البيانات والتشفير

انتقل إلى البرنامج التعليمي التالي لمعرفة كيفية تنفيذ توزيع المواقع الجغرافية.