هناك خياران للوضع الآمن عند تثبيت SQL Server. والفرق بينهما هو البرنامج الذي يقوم بعملية المصادقة. المصادقة هي عملية تأكيد هوية المستخدم الذي يتصل بـ SQL Server. بمجرد إجراء المصادقة، يمكن لـ SQL Server التحقق من أن المستخدم لديه إذن للاتصال بالمورد المطلوب، مثل قاعدة البيانات. إذا كان لدى المستخدم إذن للاتصال بقاعدة البيانات، فسيسمح SQL Server بنجاح طلب الاتصال، وإلا فسيفشل الاتصال. تسمى عملية التحقق من إذن المستخدم أيضًا بالتفويض.
· تستخدم مصادقة Windows (المعروفة أيضًا باسم المصادقة الموثوقة أو الأمان المتكامل) هوية مستخدم Windows الذي يقدم طلب الاتصال لإجراء الترخيص لقاعدة البيانات. في هذه الحالة، ليس من الضروري أن توفر سلسلة الاتصال اسم مستخدم وكلمة مرور صريحين. يعمل ASP.NET كمستخدم محلي يسمى "ASPNET" (أو "خدمة الشبكة" في IIS 6.0)، لذلك عند استخدام مصادقة Windows، سيتحقق SQL مما إذا كان هذا المستخدم لديه إذن لاستخدام قاعدة البيانات. عند هذه النقطة، يتم تشغيل كافة تطبيقات ASP.NET مع نفس المستخدم، لذا فإن الوضع الآمن يعاملهم على قدم المساواة. على الرغم من أنه من الممكن تشغيل كل تطبيق في عملية ASP.NET منفصلة (مستخدم منفصل يقوم بتشغيل كل تطبيق)، أو انتحال هوية مستخدم Windows لعميل المتصفح الذي يقدم طلب الاتصال، إلا أن ذلك يقع خارج نطاق هذا الكتاب . ومع ذلك، يعد انتحال شخصية العميل هو الاستخدام الأكثر شيوعًا لمصادقة Windows في تطبيقات الويب.
· تقوم مصادقة SQL بالتحقق من أسماء المستخدمين وكلمات المرور المقدمة بشكل صريح ومقارنتها بالمستخدمين الذين تم تكوينهم داخل SQL Server (دون إشراك نظام التشغيل). في هذه الحالة، يمكن لكل تطبيق يعمل في عملية ASP.NET الاتصال بقاعدة البيانات بشهادة منفصلة، وبالتالي عزل التطبيقات بشكل معقول (لن يتمكن التطبيق أ من الاتصال بقاعدة البيانات إذا لم يكن لديه اسم المستخدم وكلمة المرور الخاصين بـ ب) لا يمكن الاتصال بقاعدة بيانات B). هذا هو وضع المصادقة الأكثر شيوعًا المستخدم لتطبيقات الويب المنشورة، خاصة في حالة الاستضافة المشتركة. العيب الصغير هو أنه يتطلب من التطبيق الاحتفاظ بكلمة المرور الخاصة بحساب المستخدم المستخدم للاتصال، وإذا تم الحصول على كلمة المرور هذه بواسطة مستخدم ضار، فسيتم اختراق أمان قاعدة البيانات. ومع ذلك، كما سترون لاحقًا في هذا الكتاب، يوفر ASP.NET طريقة آمنة لتخزين كلمة مرور مصادقة SQL بتنسيق مشفر في ملف Web.config، مما يقلل من خطر الحصول على كلمة المرور.
· الوضع المختلط هو تكوين SQL Server الذي يسمح بمصادقة Windows ومصادقة SQL.
عند تثبيت SQL Server أو SSE، يجب عليك اختيار وضع المصادقة. في SQL Server، يوجد معالج لمساعدتك على الاختيار أثناء خطوات الأمان، بينما في SSE، يكون الاختيار الافتراضي هو مصادقة Windows. إذا كنت تريد تثبيت مصادقة SQL، فيجب عليك تكوينها بشكل صريح. تستخدم هذه المقالة مصادقة Windows.
إذا قمت بتثبيت SQL Server أو SSE، فيمكنك عرض وضع المصادقة المحدد عن طريق فتح RegEdit (بالطبع تحتاج إلى عمل نسخة احتياطية منه أولاً)، والعثور على HKey_Local_Machine/Software/Microsoft/Microsoft SQL Server وابحث عن LoginMode. يمثل مفتاح التسجيل الفرعي بقيمة 1 مصادقة Windows، بينما تمثل القيمة 2 وضع المصادقة المختلطة.
ويلخص الجدول 3-1 الاختلافات بين هذه الأوضاع.
الجدول 3-1
مصادقة Windows، | مصادقة SQL، | |||
اسم قابل للاستبدال، | مصادقة موثوقة الأمن المتكامل | لا، لكن مصادقة الوضع المختلط تسمح باستخدام | ||
بيئة Windows أو SQL النموذجية | .موقع | قائمة | ||
مستخدمي | الإنترنت | وعمليات المصادقة. | ||
يتطلب | التثبيت الافتراضي | تحديد | ||
سلسلة اتصال | التثبيتTrusted_connection=true أو Integrated Security | =المستخدم | الحقيقي | =اسم المستخدم؛كلمة المرور = كلمة المرور. |
مستخدمو تطبيق الويب ASP.NET | بعملية ASP.NET أو ASPNET (IIS 5.x) أو خدمة الشبكة (IIS 6 | ) | ||
بميزة | الأمان الأفضل؛ويمكنهم | التحكم في أحداث SQL الخاصة بالمستخدم وتتبع نشاط Windows | يمكن نشرها على الجهاز المضيف دون إنشاء حساب جديد بشكل مستقل عن نظام التشغيل يتطلب موقع الإنترانت المستضاف مهارات متوسطة فقط يوفر طريقة أكثر مرونة للتطبيقات للاتصال بكل قاعدة بيانات بشهادات مختلفة | |
العيوب | إن منح شهادة Windows لتطبيق ويب لديه القدرة على تعيين نطاق الأذونات في نظام التشغيل بشكل كبير جدًا، | ويتم تخزين كلمات المرور في تطبيق الويب (وهو ليس الحل) الحالة في مصادقة Windows ). تأكد من حفظ كلمة المرور في ملف Web.config ومن تشفيرها. يسمح بعمليات منخفضة المستوى لتطبيقات الويب باستخدام شهادات SA. قم دائمًا بإنشاء شهادات جديدة لتطبيقات الويب ASP.NET ومنح الأذونات المطلوبة فقط |