Security Role Sql server 2008 Part2

السلام عليكم اخواني الكرام درسنا لهذا اليوم تكلمة لموضوع الحماية في ال sql server والذي كلنا نعلم كم هو مهم تنضيم

عمل مستخدمي  قواعد البيانات .

 الرجاء ذكر المصدر في حال نقل المثال

قبل البدأ بالشرح فقط للتذكير رابط الدرس الاول على الرابط التالي

https://iqdotnet.wordpress.com/2011/07/18/security-in-sql-server-2008/

 ال Role

توجد ثلاث انواع لل role في ال SQl Server

1- Server Role

2- Database Role

3- Components Role

اولاً:- Server Role

يوجد داخل ال 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  خطأ لك حرية التجربة  ولا تتردد بمراسلتي  لاي استفسارعلى الرابط التالي

https://iqdotnet.wordpress.com/contactus/

5 رأي حول “Security Role Sql server 2008 Part2”

اترك رداً على kslawy إلغاء الرد