قم بتأمين تجمع SQL مخصص (المعروف سابقاً باسم SQL DW) في Azure Synapse Analytics
ستوجهك هذه المقالة إلى أساسيات تأمين تجمع SQL المخصص (المعروف سابقاً باسم SQL DW). على وجه الخصوص، تساعدك هذه المقالة على البدء بموارد لتقييد الوصول وحماية البيانات ومراقبة الأنشطة باستخدام تجمع SQL المخصص (المعروف سابقاً باسم SQL DW).
أمان الاتصال
يشير "أمان الاتصال" إلى كيفية تقييد وتأمين الاتصالات بقاعدة البيانات الخاصة بك باستخدام قواعد جدار الحماية وتشفير الاتصال.
يتم استخدام قواعد جدار الحماية بواسطة كل من خادم SQL المنطقي وقواعد البيانات الخاصة به لرفض محاولات الاتصال من عناوين IP التي لم تتم الموافقة عليها صراحةً. للسماح بالاتصالات من التطبيق أو عنوان IP العام لجهاز العميل، يجب عليك أولاً إنشاء قاعدة جدار حماية على مستوى الخادم باستخدام مدخل Microsoft Azure أو واجهة برمجة تطبيقات REST أو PowerShell.
كأفضل ممارسة، يجب عليك تقييد نطاقات عناوين IP المسموح بها من خلال جدار الحماية على مستوى الخادم بقدر الإمكان. للوصول إلى تجمع SQL المخصص (المعروف سابقاً باسم SQL DW) من جهاز الكمبيوتر المحلي الخاص بك، تأكد من أن جدار الحماية على شبكتك والكمبيوتر المحلي يسمحان بالاتصال الصادر على منفذ TCP رقم 1433.
يستخدم تجمع SQL المخصص (المعروف سابقاً باسم SQL DW) قواعد جدار حماية IP على مستوى الخادم. لا يدعم قواعد جدار الحماية على مستوى قاعدة البيانات. لمزيد من المعلومات، راجع قواعد جدار حماية قاعدة بيانات Azure SQL
يتم تشفير الاتصالات بمجمع SQL المخصص (المعروف سابقاً باسم SQL DW) افتراضياً. يتم تجاهل تعديل إعدادات الاتصال لتعطيل التشفير.
المصادقة
تشير المصادقة إلى كيفية إثبات هويتك عند الاتصال بقاعدة البيانات. يدعم تجمع SQL المخصص (المعروف سابقا باسم SQL DW) حاليا مصادقة SQL Server باستخدام اسم مستخدم وكلمة مرور، ومع معرف Microsoft Entra.
عندما أنشأت الخادم لقاعدة البيانات الخاصة بك، قمت بتحديد تسجيل دخول "server admin" باسم مستخدم وكلمة مرور. باستخدام معلومات تسجيل الدخول هذه، يمكنك المصادقة على أي قاعدة بيانات على ذلك الخادم بصفتك مالك قاعدة البيانات، أو "dbo" من خلال مصادقة Microsoft Sql Server.
ومع ذلك، كأفضل ممارسة، يجب على مستخدمي مؤسستك استخدام حساب مختلف للمصادقة. بهذه الطريقة، يمكنك تقييد الأذونات الممنوحة للتطبيق وتقليل مخاطر النشاط الضار في حالة تعرض كود التطبيق الخاص بك لهجوم إدخال SQL.
لإنشاء مستخدم SQL Server مصدق عليه، اتصل بقاعدة البيانات الرئيسية على الخادم الخاص بك من خلال تسجيل دخول مسؤول الخادم الخاص بك وقم بإنشاء تسجيل دخول جديد للخادم. من الجيد أيضاً إنشاء مستخدم في قاعدة البيانات الرئيسية. يسمح إنشاء مستخدم رئيسي للمستخدم بتسجيل الدخول باستخدام أدوات مثل Management Studio دون تحديد اسم قاعدة البيانات. كما يسمح لهم باستخدام مستكشف العناصر لعرض جميع قواعد البيانات على الخادم.
-- Connect to master database and create a login
CREATE LOGIN ApplicationLogin WITH PASSWORD = 'Str0ng_password';
CREATE USER ApplicationUser FOR LOGIN ApplicationLogin;
بعد ذلك، اتصل بـ تجمع SQL المخصص (المعروف سابقاً باسم SQL DW) باستخدام تسجيل دخول مسؤول الخادم وإنشاء مستخدم قاعدة بيانات بناءً على تسجيل دخول الخادم الذي أنشأته.
-- Connect to the database and create a database user
CREATE USER ApplicationUser FOR LOGIN ApplicationLogin;
لمنح المستخدم إذناً لإجراء عمليات إضافية مثل إنشاء عمليات تسجيل الدخول أو إنشاء قواعد بيانات جديدة، قم بتعيين المستخدم إلى الأدوار Loginmanager
وdbmanager
في قاعدة البيانات الرئيسية.
لمزيد من المعلومات بشأن هذه الأدوار الإضافية والمصادقة على SQL Database، راجع إدارة قواعد البيانات وتسجيلات الدخول في Azure SQL Database. لمزيد من المعلومات حول الاتصال باستخدام معرف Microsoft Entra، راجع الاتصال باستخدام مصادقة Microsoft Entra.
التصريح
يشير التخويل إلى ما يمكنك القيام به داخل قاعدة البيانات بمجرد المصادقة والاتصال. يتم تحديد امتيازات التخويل من خلال عضويات الدور والأذونات. وكأفضل ممارسة، ينبغي أن تمنح المستخدمين أقل الامتيازات اللازمة. لإدارة الأدوار، يمكنك استخدام الإجراءات المخزنة التالية:
EXEC sp_addrolemember 'db_datareader', 'ApplicationUser'; -- allows ApplicationUser to read data
EXEC sp_addrolemember 'db_datawriter', 'ApplicationUser'; -- allows ApplicationUser to write data
حساب مسؤول الخادم الذي تتصل به هو عضو في db_owner، والذي لديه السلطة لفعل أي شيء داخل قاعدة البيانات. احفظ هذا الحساب لتوزيع ترقيات المخطط وعمليات الإدارة الأخرى. استخدم حساب "ApplicationUser" بأذونات محدودة أكثر للاتصال من التطبيق الخاص بك بقاعدة البيانات بأقل الامتيازات التي يحتاجها تطبيقك.
هناك طرق لتقييد ما يمكن للمستخدم القيام به داخل قاعدة البيانات:
- تتيح لك الأذونات الدقيقة التحكم في العمليات التي يمكنك إجراؤها على الأعمدة الفردية والجداول وطرق العرض والمخططات والإجراءات والعناصر الأخرى في قاعدة البيانات. استخدم الأذونات الدقيقة للحصول على أقصى قدر من التحكم ومنح الحد الأدنى من الأذونات اللازمة.
- يمكن استخدام أدوار قاعدة البيانات بخلاف db_datareader وdb_datawriter لإنشاء حسابات مستخدمين أكثر قوة أو حسابات إدارة أقل قوة. توفر أدوار قاعدة البيانات الثابتة المضمنة طريقة سهلة لمنح الأذونات، ولكن يمكن أن تؤدي إلى منح أذونات أكثر مما هو ضروري.
- يمكن استخدامالإجراءات المخزنة للحد من الإجراءات التي يمكن اتخاذها في قاعدة البيانات.
يمنح المثال التالي حق الوصول للقراءة إلى مخطط معرف من قبل المستخدم.
--CREATE SCHEMA Test
GRANT SELECT ON SCHEMA::Test to ApplicationUser
يتم التحكم في إدارة قواعد البيانات والخوادم من مدخل Microsoft Azure أو استخدام Azure Resource Manager API بواسطة تعيينات دور حساب مستخدم المدخل. لمزيد من المعلومات، راجع تعيين أدوار Azure باستخدام مدخل Azure.
التشفير
يساعد تشفير البيانات الشفافة (TDE) على الحماية من تهديد النشاط الضار من خلال تشفير وفك تشفير بيانات ثابتة (عدم تنقلها). عندما تقوم بتشفير قاعدة البيانات الخاصة بك، يتم تشفير النسخ الاحتياطية وملفات سجل العمليات المرتبطة بها دون الحاجة إلى إجراء أي تغييرات على تطبيقاتك. يقوم TDE بتشفير تخزين قاعدة البيانات بأكملها باستخدام مفتاح متماثل يسمى مفتاح تشفير قاعدة البيانات.
في SQL Database، يكون مفتاح تشفير قاعدة البيانات محمياً بشهادة خادم مضمنة. شهادة الخادم المضمنة فريدة لكل خادم. تقوم Microsoft تلقائياً بتدوير هذه الشهادات كل 90 يوماً على الأقل. خوارزمية التشفير المستخدمة هي AES-256. للحصول على وصف عام لـ TDE، راجع تشفير البيانات الشفاف.
يمكنك تشفير قاعدة البيانات باستخدام مدخل Microsoft Azure أو T-SQL.
الخطوات التالية
للحصول على تفاصيل وأمثلة بشأن الاتصال بالمستودع الخاص بك باستخدام بروتوكولات مختلفة، راجع الاتصال بمجموعة SQL المخصصة (المعروفة سابقاً باسم SQL DW).