بررسی اصول امنیتی پایگاه های داده بخش دوازدهم
3-5 نقشها
در داخل SQLServer انواع مختلفی از نقشها وجود دارد : نقشهای ثابت سرویس دهنده (FSR) ، نقشهای پایگاهدادهای (DBR)، نقشهای برنامهای (APR) که در ذیل به بررسی هر یک میپردازیم.
3-5-1 نقشهای ثابت سرویس دهنده (FSR)
در داخل SQLServer تعدادی نقش از پیش تعریف شده وجود دارد که وظیفه آنها محدود کردن فعالیتهای دیگر و یا اجازه شروع به بعضی از فعالیتها میباشد. فردی با اختیار نوشتن مثلا مدیر سیستم میتواند این نقشها را به هر کاربر و یا گروهی در داخل SQLServer انتساب دهد.اگر در Object Browser ، Server Role را مشاهده کنید ، لیستی از این نقشها را خواهید دید(شکل 3-16).
شکل 3-16 : FSR
لازم بذکر است که امکان تعریف FSR جدید وجودندارد. نقشها و وظایف آنها در ذیل آمده است:
bulkadmin : Insertهای حجیم ، توسط این نقش انجام میشود.
dbcreator : وظیفه ساخت ، تغییر ، حذف پایگاهداده را دارد. در ضمن توانایی ذخیره کردن آنها را نیز دارد.
diskadmin : وظیفه مدیریت فایلهای دیسکی را دارد.
securityadmin : وظیفه این نقش مدیریت Loginها است. اعضای این گروه میتوانند اختیارات موجود در سطح سرویس دهنده و یا پایگاهداده را اعطا و یا ملغی کنند. تعیین کلمه رمز برای Loginهای SQLServer از جمله وظایف این نقش میباشد.
sysadmin : هر فعالیتی را میتواند انجام دهد.
serveradmin : وظیفه مدیریت SQLServer و انجام فعالیتهای نظیر تغییر گزینهها و همچنین فعال کردن SQLServer برای انجام کارها و نیز غیر فعال کردن آن میباشد.
نقشهای سرویسدهنده ، نقشهای استاتیک هستند.حوزه فعالیت این نقشها در سطح سرویسدهنده است.هنگام ایجاد Loginها در صورت نیاز میتوان هر یک از این نقشهای سرویسدهنده را به آنها نسبت داد. در این صورت این Loginها علاوه بر مسئولیتهایی که در سطح پایگاهداده دارند ، میتوانند به انجام فعالیتهایی در سطح سرویسدهنده نیز بپردازند.
اگر کاربر موجود در سطح ویندوز ، عضو گروه BUILTIN/Administrator باشد به صورت خودکار نقش sysadmin را در سطح سرویسدهنده خواهد داشت. با کلیک راست کردن بر روی sysadmin موجود در Server role و انتخاب Properties میتوان این مطلب را بررسی کرد(شکل 3-17). توجه شود که BUILTIN/Administrator درلیست موجود در شکل3-17 وجود دارد. Loginهای دیگر میتوانند با استفاده از دکمه Add به لیست اضافه شوند.
شکل3-17 : اعضای نقش sysadmin
3-5-2 نقشهای پایگاهدادهای (DBR)
DBR با فعالیتهایی در ارتباط است که در سطح پایگاهداده انجام میپذیرند. نقشهای موجود در SQLServer بر اساس نوع به چند بخش متفاوت تقسیم بندی میشوند. تعدادی از DBRها همراه با نصب SQLServer ایجاد میشوند :
dbo/db_owner : مشخص کننده مالک پایگاهداده است.
db_accessadmin : مدیریت دسترسی Loginها به پایگاهداده بر عهده این نقش میباشد.
db_backupoperator : قابلیت پشتیبان گیری از پایگاهداده را دارد.
db_datareader : توانایی خواندن اطلاعات از جدولهای تعریف شده توسط کاربر را دارد.
db_datawriter : توانایی نوشتن اطلاعات در جدولهای تعریف شده توسط کاربر را دارد
db_ddladmin : اعضای این گروه توانایی اجرای دستورات از نوع DDL را دارند. به عنوان مثال میتوانند جدول بسازند.
db_denydatareader : اعضای این گروه نمیتوانند هیچ داده ای را از جدولهای تعریف شده توسط کاربر بخوانند.
db_danydatawriter : اعضای این گروه توانایی تغییر ، حذف ، و اضافه هیچ داده ای را در جدولهای تعریف شده توسط کاربر ندارند.
db_securityadmin : اعضای این گروه توانایی تغییر عضویتِ در نقشها را دارند.همچنینن وظیفه مدیریت اختیارات را بر عهده دارند.
public : هر کاربری که ایجاد میشود به این گروه متعلق است. این گروه میتواند به منابع عمومی دسترسی داشته باشد.
اگرچه میتوان از نقشهای از پیش تعریف شده پایگاهدادهای استفاده کرد ولی در بعضی مواقع ایجاد نقشهای جدید مفید به نظر میرسد. این قابلیت در SQLServer تعبیه شده است. پس از ایجاد یک نقش جدید میتوان کاربران ویندوز ، گروههای ویندوز و یا Loginهای SQLServer را به نقشها نسبت داد. برای انجام این کار بصورت زیر عمل میکنیم :
مسیر زیر را دنبال کنید :
Object Explorer Security User New User را انتخاب کنید(شکل 3-18)
شکل 3-18 : ایجاد کاربر در سطح پایگاه داده
در صفحۀ ظاهر شده(شکل 3-19) نامی را برای کاربر خود در نظر میگیریم. این کاربر باید با یک Login در ارتباط باشد.