يوجد داخل ال Sql server عدة ادوار او Role محددة مسبقا من قبل Microsoft بحيث تسمح بمهمات معينة يتم تنفيذها على ال SQl server نفسه ويمكن اسناد هذه ال Role للمستخدمين او الى اي مجموعه من المسجلين داخل ال SQL server وقد تعلمنا كيفية ادراج مستخدمين او مجموعات في الدرس الاول
اذا نظرنا الى العقدة Server Role في النافذة Object Explorer سنرى قائمة من الادوات كما في الصورة التالية
الان سوف نشرح كل خاصية على حده
Bulk admin: – يقوم بتنفيذ عبارات الBULCK ADMIN وهي عباره عن عبارات برمجية بلغة ال TSQL.
ومعنى هذا ال Roleاو معنى هذا ال Bulk عملية نقل البيانات من والى ال Sql server اخر مثل ال Table & view
Disk admin: – وهو دور يسمح لمستخدمية من ادارة والتعامل مع ملفات ال Sql server على القرص الصلب
DB Creator: – يقوم هذا ال Role عند اعطائة لاحد المجاميع او المستخدمين بأنشاء صلاحيات انشاء قواعد بيانات او اضافتها او تعديلها بالاضافة الى حذفها واستردادها
Process admin: – يقتل جلسة تنفيذ شفرة ال TSQl ومعناها ادارة العمليات الجارية حالياً في ال Sql server من ادارة شفرات ال TSQl مايكروسوفت لم تنسى حتى هذه النقطة.
Public: – يستطيع ان يرى كافة الصلاحيات لكن لايستطيع التعديل عليها ودائماً يكون الخيار الافتراضي
Security Admin: – يكون مسؤول عن تسجيلات الدخول بما في ذالك كلمات المرور وسماحيات تسجيل الدخول
Server admin: – يدير ال SERVERوينفذ مهمات مثل تشغيل server والنسخ الاحتياطي والجدولة وما الى ذلك من تفاصيل تخص المخدم او ال server
Setup admin: – يعمل على اكثر من مخدم واحد حيث يتم ربط السيرفرات وهو مثل الية عمل ال Replication بين السيرفرات
SYSadmin: – ينجز اي عمل من الاعمال التالية)) كافة الاعمــال))
ملاحظة المجموعه الافتراضية التي لها الحق بالدخول الى قاعدة البيانات يكون مستخدميها ضمن مجموعه الوندوز التي تحمل الاسم التالي
BUILTIN/ADMINISTRATOR
وسوف نجد هذه المجموعه لديها تسجيل دخول في ال SQL SERVER تحت ال Roleالذي يدعى sys admin الذي لدية الحق في القيام بالاعمال كافة على ال SQl server
لمزيد من الحماية يجب علينا حذف هذة المجموعه BUILTIN/ADMINISTRATOR من الرول SYSadmin لكن بعد انشاء مجموعه تنتمي الى هذا الدور
الان ناتي الى شرح خاصية الامن الاخرى في ال Sql server وهي اعطاء صلاحيات على نفس قاعدة البيانات
Data Base role
لاحظ الصوره التالية التي لاحظناها عند انشاء مجموعه مستخدمين لل Sql server
والشرح كالتالي
1- Db_/db_owner:- هذا الدور يمثل مالك قاعدة البيانات وله كل الحق في التصرف بها
2- Db_Accessadmin:- دور يكون المسؤول علية ادارة تسجيلات الدخول الى قاعدة البيانات
3- Db_Backupoperator:- يمكن ان يدور النسخ الاحتياطي لقاعدة البيانات
4- Db_datareader:- من الممكن اتمام عملية القراءة للمعطيات من كل الجداول المعرفة من قبل قاعدة البيانات
5- Db_datawriter:- من الممكن ان ينجز اي تغيرات تطرأ مثل كتابة على الجداول
6- Db_DDLadmin:- وهي جمل تهتم بالتعامل مع الـ Database Schema مثل Create, Alter, Drop .. الخ وهي اختصار لل DLL Data Defination Languag
7- Db_denydatareader:- فائدة عدم القدرة على القراءة
8- Db_denywriter:- عدم القدرة على القراءة
9- Db_securityadmin:- اكيد لنفس قاعدة المعطيات الحق في ادارة تسجيلات دخولها وهذا الدور يؤمن هذه العملية
10- Public:- الصلاحيات التامة لقاعدة البيانات وهي الحالة الافتراضية للمستخدمين لكن ليس لدية اي صلاحيات باعطاء صلاحيات
يرجى الانتباه الى مسالة عمل تخطيط لاعطاء مستويات الصلاحيات قبل البدء بالعمل لنتخيلها مسالة تحليل لقاعدة البيانات
يتسائل البعض ان هذا ال security غير كافي لنا كمدراء قواعد بيانات هنا ال SQl server يقول كلمتة هنالك المزيد
هل نريد ان نجعل شخص معين يرى او يتلاعب بجدول واحد او حتى حقل واحد من قاعدة البيانات ؟؟؟
الاجابة في هذا الشرح
سوف نقوم بأضافة مستخدم الى قاعدة البيانات وله الحق برؤية معلومات معينة وحجب معلومات اخرى
1- من ال القائمة object Explorerنختار قاعدة البيانات التي نريد ان نعمل لمكوناتها صلاحيات خاصة
2- من العقدة security نختار user>>new user حاول ان نضيف مستخدم ليس له الحق حتى بالدخول الى قاعدة البيانات التي سوف نعمل عليها كما في الصورة التالية
بعد اختيار المستخدم يجب علينا الان اعطاء الصلاحيات المناسبة كما في الشاشة التالية
الان نأتي الى اختبار ما استتج من درسنا نقوم بتسجيل الدخول بأسم المستخدم الذي عملنا علية الصلاحيات الاخيرة
بعد تسجيل الدخول لقاعدة البيانات بأسم المستخدم الذي قمنا بعمله واعطائة الصلاحيات الاخيرة
طبعاً عند فتح عقدة قاعدة البيانات سوف نلاحظ رؤية فقط الجدول المسموح له التعامل معه عند محاولة فتح الجدول سوف لن يسمح له بفتح الجدول الا في وضع التصميم ؟؟ اذن كيف سنتعامل مع الجدول في هذة الحالة عن طريق لغتنا ال TSQL لاحظ الصور التالية
لو اردنا الوصول والتعامل مع جدولنا من خلال نافذة ال Query analysis نكتب الكود الخاص بالاستعلام عن الحقل الذي قمنا بعمل الصلاحيات علية
use test
Go
Select name from tbl_users
Go
لو قمنا بالاستعلام عن كل الحقول او عن حقل ليس لديك فية صلاحيات سوف يعطي ال SQl server خطأ لك حرية التجربة ولا تتردد بمراسلتي لاي استفسارعلى الرابط التالي
المقالة الأولى عملت لها ملف PDF ونزلته
أين ملف المقالة الثانية ؟
والله يا اخي اكون ممون منك اذا عملت لها انت ملف ال pdf وبارك الله فيك
الله يوفقك إلى كل خير
ممنون منك اخي الكريم ربنا يخليك
الله يوفقك