امنیت ۲۰۰۰ SQL Server
یکی از مهمترین صورتهای مدیریت یک پایگاه داده مراقبت کردن از امنیت داده ها می باشد. شما باید تضمین کنید که برای هر کسی که به طور قانونی نیاز به دسترسی داده ها دارد، بتواند داده هایش را بگیرد البته نه اینکه به کسی دسترسی نامناسب دهید. در این درس، ما امتحان می کنیم که چگونه امنیت ۲۰۰۰ SQL Server به کار برده می شود و می آموزیم که چگونه امتیازهای امنیتی را ایجاد و تخصیص دهیم.
شناختن مدهای امنیت
زمانی در مرحله ای از SQL Server یک درخواست برای اتصال دریافت می کنیم. آن از یک Login ID عبور می کند. Login ID معرف Account می باشد که دسترسی به ۲۰۰۰ SQL Server را کنترل می کند. SQL Server بررسی می کند Login ID که داده شده است معتبر باشد. سپس معین می کند که آیا Login ID که پذیرفته شده است امتیاز امنیتی کافی برای به انجام رساندن عملیات درخواست شده دارد. این عملیات به عنوان authentication نامیده می شود. ۲۰۰۰ SQL Server ، authentication را از دو راه می تواند پشتیبانی کند. آن می تواند به NT ویندوز مایکروسافت یا امنیت ویندوز ۲۰۰۰ برای معتبر کردن ID اطمینان کند یا آن می تواند اعتبار سازی را خودش به انجام رساند.
Authentication (تأیید اعتبار) ویندوز
زمانی که از تأیید اعتبار ویندوز (شناخته شده به عنوان امنیت مجتمع در نسخه های قبلی از SQL Server) مدیر سیستم صورتهای امنیتی برای ویندوز NT و Account های ویندوز ۲۰۰۰ و گروهها را می پذیرد. نرم افزار پردازشگر ویندوز یک اتصال معتبر برای Server را درخواست می کند. یک اتصال معتبر از زمانی پذیرفته خواهد شد اگر ویندوز NT یا ویندوز ۲۰۰۰ قبلاً یک User را تصدیق کرده باشد. ۲۰۰۰ SQL Server نیاز دارد به تضمین Login ID که برای دسترسی پیدا کردن بهServer و پایگاه داده فراهم شده است.
مهم: زمانی که ویندوز ۹۸ نمی تواند ارتباطات معتبر را پشتیبانی کند مواردی از ۲۰۰۰ SQL Server که روی ویندوز ۹۸ اجرا می گردد نمی تواند از مد تأیید اعتبار ویندوز استفاده کند. نرم افزار پردازشگر یا Client می تواند روی ویندوز ۹۸ اجرا شود. اگر چه با استفاده از تأیید اعتبار ویندوز تهیه شده، Server خودش روی ویندوز NT یا ویندوز ۲۰۰۰ اجرا می شود.
تأیید اعتبار SQL Server
به طور کلی توانا بودن تأیید اعتبار Login نماینده برای سیستم امنیتی ویندوز زمانی که آن را از مد تأیید اعتبار ویندوز استفاده می کند، ۲۰۰۰ SQL Server امنیت خودش را به کار می برد، نه به طور حیرت آور، تأیید اعتبار SQL Server (شناخته شده به عنوان امنیت استاندارد در نسخه های قبلی از SQL Server). زمانی که درخواست اتصال صورت گیرد از تأیید اعتبار SQL Server استفاده می کنیم.
۲۰۰۰ SQL Server هر دوی Login ID و Password را دریافت می کند. که آن برخلاف لیست از Login های مشخص شده برای آن به وسیله مدیر سیستم معتبر می شود.
مهم: مایکروسافت توصیه می کند که از تأیید اعتبار ویندوز در هر جای ممکن استفاده کنید.
User Logins
امنیت در داخل ۲۰۰۰ SQL Server از طریق چندین شئی امنیتی کنترل می شود. در بالاترین سطوح Login ها می باشند که یک ۲۰۰۰ SQL Server ، کاربر ویندوز یا یک گروه ویندوز برای Server را مشخص می کند.
مهم: برای تکمیل تمرینات زیر، شما باید همچنین مدیرهای امنیتی یا وظایف مدیرهای سیستم در داخل SQL Server تخصیص داده باشید لطفاً به مدیر پایگاه داده تان رجوع کنید اگر شما درباره حق انحصاری تان در داخل سیستم مطمئن نیستید.
ایجاد کردن User Login
Login ها می تواند به طور دستی هدایت کردن آیکون Login از پوشه Security در یک Server ایجاد کنید و یک Login جدید از منوی Context انتخاب کنید اما ساده ترین راه استفاده کردن از Create Login Wizard می باشد.
ایجاد کردن SQL Server Login
1- Server را در درخت Console انتخاب می کنیم. SQL Server یک لیستی از شئی های Server در قاب Details نشان می دهد.
۲- دکمه Wizard را روی نوار ابزار Manager Enterprise کلیک می کنیم. SQL Server کادر محاوره ای Select Wizard را نشان می دهد.
۳- در بخش پایگاه داده، Create Login Wizard را انتخاب کرده و سپس OK را کلیک می کنیم. SQL Server اولین صفحه از Create Login Wizard را نشان می دهد.
۴- Next را کلیک می کنیم، ویزارد یک صفحه ای را نشان می دهد که از مد تأیید اعتبار Server برای Login سؤال می کند.
۵- دکمهOption برچسب شده اطلاعات SQL Server Login را انتخاب می کنیم که به وسیله سیستم به من تخصیص داده می شود (SQL Server Authentication)
6- Next را کلیک کرده، ویزارد یک صفحه که Login ID ، Password را درخواست می کند نشان می دهد.
۷- Test ID را به صورت نام و Password که شما مایل هستید وارد می کنید.
۸- Next را کلیک کرده، ویزارد یک صفحه درخواست وظایف امنیتی برای اینکه Login باید تخصیص داده شود را نشان می دهد.
۹- Login را برای وظایف مدیرهای سیستم اضافه می کنیم.
۱۰- Next را کلیک می کنیم ویزارد یک صفحه را که درخواست می کند از پایگاههای داده که اینLogin باید دسترسی دهد.
وظایف Server
وظایف Server که به یک Login تخصیص داده می شود معین می کند که چه حق ویژه امنیتی Login در سطح Server دارد. جدول ۳٫۱ حق ویژه تخصیص داده شده به هر وظیفه را تشریح می کند.
Bulk Insert Administrators Bulkadmin می تواند عملیات قرارگیری را به طور عمده به انجام رساند
Database Creators dbCreator می تواند داده های پایگاه را ایجاد، تغییر و حذف کند
Disk Administrators diskadmin می تواند فایلهای دیسک را مدیریت کند
Process Administrators Processadmin می تواند عملیاتهای اجرایی را در SQL Server را مدیریت کند
Security Administrators Securityadmin می تواند Logins و ایجاد پایگاه داده را مدیریت کند
Server Administrator Securityadmin می تواند گزینه های قالب بندی کل SQL Server را تنظیم کند و Server را خاموش کند
Setup Administrator Set upadmin می تواند Server های Link شده، روشهای Startup و روشهای ذخیره شده را مدیریت کند
System Admin Sysadmin می تواند هر فعالیتی را در SQL Server انجام دهد
توضیحات نام نام کامل
۱۱- Login برای پایگاه داده Aromatherapy اضافه می کنیم.
۱۲- Next را کلیک می کنیم. ویزارد یک صفحه را برای تأیید کردن انتخابهایی که شما ساخته اید نشان می دهد.
مهم:Login هایی که برای وظایف Server های ویژه می باشد به ویژه وظیفه مدیرهای سیستم حق ویژه روی همه پایگاه داده ها خواهند داشت، اعم از اینکه آنها برای Login به طور خاص پذیرفته شده اند یا خیر.
۱۳- Finish را کلیک کرده، ویزارد ایجاد Login یک متنی را برای تأیید اینکه Login اضافه شده است نشان می دهد.
ایجاد کردن Login ویندوز
۱- Server را در درخت Console انتخاب می کنیم. SQL Server یک لیستی از پوشه های Object را در قاب Details نشان می دهد.
۲- ۲- دکمه Wizard را در نوار ابزار Manager Enterprise کلیک می کنیم SQL Server کادر محاوره ای Select Wizard را نشان می دهد.
۳- ویزارد ایجادLogin را در بخش پایگاه داده ها انتخاب کرده و سپس OK را کلیک می کنیم. SQL Server اولین صفحه از Wizard Create Login را نشان می دهد.
۴- Next را کلیک می کنیم ویزارد یک صفحه را نشان می دهد که برای مد تأیید اعتبار Server برای Login سؤال می کند تنظیمات پیش فرض را می پذیریم.
۵- Next را کلیک می کنیم. ویزارد یک صفحه را برای درخواستID Account ویندوز نشان می دهد.
۶- Windows ID را در این فرم وارد می کنیم. Account Name وDomain Name (account name ، می تواند کاربر یا گروه باشد). Next را کلیک می کنیم. ویزارد یک صفحه نشان می دهد که وظایف امنیتی برای اینکه Login باید تخصیص داده شود را درخواست می کند.
راهنمایی: رد دسترسی به گزینه Server در این صفحه می تواند به طور آشکار برای رد دسترسی به یک گروه کاربر تکی استفاده شود.
۷- Login را برای وظیفه ایجاد کننده ها پایگاه داده ها اضافه می کنیم.
۸- Next را کلیک می کنیم. ویزارد یک صفحه را نشان می دهد که درخواست می کند از پایگاه داده ها که دسترسی به این Login باید پذیرفته شود.
۹- Login را برای پایگاه داده Aromatherapy اضافه می کنیم.
۱۰- Next را کلیک می کنیم. ویزارد یک صفحه که انتخابهای ساخته شده را نشان می دهد تأیید می کند.
مهم:Login هایی که برای نقشهای Server خاص می باشد، به ویژه نقش مدیرهای سیستم حق انحصاری در همه پایگاه داده ها خواهند داشت اعم از اینکه آنها برای Login به طور خاص پذیرفته شده اند یا خیر.
۱۱- Finish را کلیک کرده Create Login Wizard یک متنی را نشان می دهد که Login ها اضافه شده است.
مدیریت Logins
در همان راهی که شئی های پایگاه داده ها دیگر نیاز به نگهداری گاهگاهی دارند. شما ممکن است نیاز به تغییر خصوصیات از یک User Login داشته باشید. برای مثال، شما ممکن است نیاز به تغییر Security Role برای اینکه Login مقرر شود، یا پایگاه داده ها برای اینکه به آن دسترسی پیدا کند داشته باشید. البته شما بعضی اوقات نیاز خواهید داشت به برداشتن یک Login به طور کامل که همه این عملیاتها با استفاده از Manager Enterprise ساده می باشد.
تغییر دادن خصوصیات (Properties) Login
1- آیکون Logins را در پوشه Security در درخت Console راهبری می کنیم. SQL Server یک لیستی از Login در قاب Details نشان می دهد.
۲- Test ID Login را در قاب Detail دابل کلیک می کنیم. SQL Server کادر محاوره ای SQL Server Login Properties را نشان می دهد.
۳- زبانه Server Roles را انتخاب می کنیم. SQL Server ، Server Roles را برای اینکه Login برقرار شده نشان می دهد.
۴- Login را از نقش مدیرهای سیستم (System Administrators Role) برمی داریم.
۵- زبانه Database Access را انتخاب می کنیم. SQL Server پایگاه داده هایی را نشان می دهد. برای اینکه دسترسی به Login مقرر شود.
۶- North Wind را به لیست پایگاه داده ها اضافه می کنیم.
۷- Ok را برای بستن کادر محاوره ای SQL Server Login Properties کلیک می کنیم. SQL Server خصوصیات Login را تغییر می دهد.
برداشتن یک Login
1- آیکون Login را در پوشه Security در درخت Console می بریم. SQL Server یک لیستی از Login در قاب Details نشان می دهد.
۲- Test ID Login را در قاب Details انتخاب می کنیم و سپس کلید Delete را فشار می دهیم. SQL Server یک متنی را نشان می دهد که از شما برای تأیید حذفیات سؤال می کند.
۳- Yes را کلیک می کنیم. SQL Server ، Login را حذف می کند.
سطح امنیتی پایگاه داده
در سطح پایگاه داده، هر User account ویندوز یا SQL Server Login برای یک User Account در یک پایگاه داده ترسیم می گردد. حتی دسترسی که به یک نمونه Server SQL که با یک Login تخصیص داده می شود ضرورتاً نیاز به دسترسی داشتن به یک پایگاه داده مشخص نخواهد داشت مگر اینکه یک شخص یک کاربر برای آن پایگاه داده ساخته باشد. همان طور Login ها می تواند به Server Roles تخصیص داده شود که یک حق انحصاری ویژه برای آنها اعطاء می کند، کاربرها می تواند به نقشهایی در سطح پایگاه داده تخصیص داده شوند که به آنها حق انحصاری ویژه اعطاء می گردد.
راهنمایی: از طریق حقوق انحصاری امنیتی که در سطح جداگانه می تواند تخصیص داده شود که به طور کلی توصیه نمی شود از زمانی که مدیریت امنیت را پیچیده می کند. آن خیلی ساده تر می باشد اضافه یا برداشتن افراد برای گروههایی از پیش تعریف شده که دارند یک تنظیم ویژه ای از حقوق انحصاری امنیت از زمانی که تخصیص می گردد و مجدداً حقوق انحصاری را تخصیص می دهد.
User های پایگاه داده
زمانی که شما یک Login جدید را با استفاده از Create Login Wizard ایجاد می کنید و به آن دسترسی پایگاه داده را واگذار می کنید Login به طور خودکار به لیست کاربرهای پایگاه داده اضافه خواهد شد. اگر چه زمانی که شما یک پایگاه داده جدید ایجاد می کنید احتمالاً شما خواهید خواست به اضافه کردن Login های موجود برای آن به عنوان کاربر.
ایجاد یک User پایگاه داده
۱- آیکون User را در پایگاه داده Aromatherapy می بریم. SQL Server یک لیستی از User ها در قاب Details نشان می دهد.
۲- دکمه New را در نوار ابزار Manager Enterprise کلیک می کنیم.
راهنمایی: شما همچنین می توانید کادر محاوره ای Database User Properties را به وسیله کلیک راست کردن باز کنید. آیکون Users در درخت Console و Database User جدید را در منوی Context انتخاب می کنیم.
۳- نام Login تان را در Combo Boy انتخاب می کنیم. SQL Server نام Login را به عنوان نام User پیش فرض پیشنهاد خواهد داد اما شما می توانید آن را تغییر دهید اگر بخواهید.
۴- db-Owner را برای نقشهای واگذار شده به User جدید اضافه می کنیم.
-۵ OK را کلیک می کنیم. SQL Server ، User را به پایگاه داده اضافه می کند.
راهنمایی: نقشهایی که به یک User پایگاه داده تخصیص می شود تعیین می کند که چه حقوق انحصاری امنیتی، کاربر برای پایگاه داده دارد. بخش زیر Database Roles را برای جزئیات بیشتر ببینید.
برداشتن یک User پایگاه داده
۱- آیکون Users را برای پایگاه Aromatherapy در درخت Console می بریم. SQL Server یک لیستی از کاربرها را در قاب Details نشان می دهد.
۲- User که شما در آخرین تمرین در لیست ایجاد کردید را انتخاب می کنیم و سپس کلید Delete را فشار می دهیم. SQL Server یک متنی را نشان می دهد که از شما برای تأیید حذفیات سؤال می کند.
۳- Yes را کلیک می کنیم. SQL Server ، User را از پایگاه داده حذف می کند.
Database Roles
یک Database Roles مانند یک کاربر مجازی که شما برای مدیریت دسترسی پایگاه داده ایجاد می کنید می باشد. هر تعدادی از کاربرهای پایگاه داده می تواند به یک نقش تخصیص داده شود. هر کاربر معین می تواند به چندین نقش تخصیص داده شود. زمانی که شما حقوق انحصاری به یک نقش پایگاه داده تخصیص می دهید و سپس یک کاربر برای آن نقش تخصیص می دهید. کاربر همه حقوق انحصاری از نقش را به ارث می برد. این خیلی ساده تر از نگهداری حقوق انحصاری برای کاربرهای شخصی می باشد. SQL Server 2000 یک تعدادی از نقشهایی از قبل تعریف شده را تهیه می کند. به طوری که در جدول ۳٫۲ نشان داده شده همچنین شما می توانید نقش سفارشی که برای پایگاه داده واحد می باشند را ایجاد کنید.
راهنمایی: نقشهای پایگاه داده ای که شما در پایگاه داده اصلی ایجاد می کنید اضافه خواهد شد. برای هر پایگاه داده های جدید که شما برای آن Server ایجاد می کنید.
توضیحات نام نام کامل
Access Administrator db-Accessadmin می تواند User IDS را اضافه یا بردارد
ûackup Operator Db-Baclcupoprator می تواند DBCC ، CHECKPOINT و حالتهای BACKUP صادر کند
Data Reader db-Data Reader می تواند همه داده ها از هر جدول کاربر در پایگاه داده ها را انتخاب کند
Data Writer db-Data Writer می تواند هر داده در هر جدول کاربر در پایگاه داده ها اصلاح کند
Data DefinitionAdministrator db-dd Ladmin می تواند حالتهای زبان تعریف داده ها DDL را به انجام رساند اما نمی تواند GRANT ، REVOKE یا حالتهای DENY صادر کند
Deny Data Rader db-deny Data Writer می تواند اجازات SELECT را روی هر شئی در پایگاه داده لغو کند
Data Base Owner db-Owner همه اجازات دسترسی در پایگاه داده ها را دارد
Deny Data Writer db-deny Data Writer می تواند INSERT UP DATE و اجازات دسترسی DELETE را روی هر شئی در پایگاه داده رد یا ملغی کند
Security Administrator db-Securityadmin می تواند همه اجازات، حق مالکیت شئی نقشها و عضویتهای نقش را کنترل کند
Public نقش پیش فرض که به هر پایگاه داده کاربر متعلق می باشد
ایجاد کردن یک Role پایگاه داده
۱- آیکون Roles برای پایگاه داده Aromatherapy را در درخت Console کلیک می کنیم. SQL Server یک لیستی از نقشهای پایگاه داده موجود را نشان می دهد.
۲- دکمه New را روی نوار ابزار Manager Enterprise را کلیک می کنیم. SQL Server کادر محاوره ای Database Role Properties را نشان می دهد.
۳- ۳ Lesson را به عنوان نام نقش وارد می کنیم.
۴- OK را کلیک کرده، SQL Server کادر محاوره ای Database Role Properties را می بندد.
۵- Role 3 Lesson را در قاب Details دابل کلیک می کنیم. SQL Server کادر محاوره ای Database Role Properties را نشان می دهد.
مهم: شما باید کادر محاوره ای Database Role Properties را به ترتیب برای قادر ساختن دکمه Permissions ببندید.
۶- دکمه Permissions را کلیک می کنیم. SQL Server کادر محاوره ای Permissions را نشان می دهد.
راهنمایی: کادر محاوره ای Database Role Properties دو نوع از نقشها Standard Roles و Application را پشتیبانی می کند. نقشهایی که دراین درس بحث شده اند همه Standard Roles می باشند. یک application Role یک تابع ویژه ای است که احتیاجات برنامه های کاربردی پیچیده را پشتیبانی می کند.
Establishing Application Security And Application Roles را در کتاب SQL Server Online برای جزئیات درباره application Role ببینید.
۷- نقش که اجازات دسترسی در جدول Oils را انتخاب می کند فراهم می کنیم.
۸- OK را کلیک کرده SQL Server کادر محاوره ای Permissions را می بندد.
۹- OK را کلیک می کنیم. SQL Server یک نقش جدید را اضافه می کند.
تخصیص یک کاربر به یک نقش پایگاه داده
۱- آیکون Users را برای پایگاه Aromatherapy در درخت Console راهبری می کنیم. SQL Server یک لیستی از User ها را در قاب Details نشان می دهد.
۲- نام کاربرتان را در لیست کاربرها دابل کلیک می کنیم. SQL Server کادر محاوره ای Database User Properties را نشان می دهد.
۳- کاربر را برای Role 3 Lesson با کلیک کردن آن در کادر لیستDatabase Role Membership اضافه می کنیم.
۴- Ok را کلیک کرده SQL Server کاربر را برای نقش اضافه می کند و کادر محاوره ای Database Role Membership را می بندیم.
برداشتن یک User از یک Database Role
1- آیکون Users را برای پایگاه داده Aromatherapy در درخت Console راهبری می کنیم. SQL Server یک لیستی از User ها را در قاب Details نشان می دهد.
۲- نام کاربرتان را در لیست دابل کلیک می کنیم. SQL Server کادر محاوره ای Database User Properties را نشان می دهد.
۳- ۳ Role Lesson را در لیست Database Role Membership انتخاب نمی کنیم.
۴- OK را کلیک کرده SQL Server ، Users Membership را از نقش برمی دارد و کادر محاوره ای را می بندد.
برداشتن یک Data Base Role
1- آیکون Roles برای پایگاه Aromatherapy در درخت Console را راهبری می کنیم. SQL Server یک لیستی از نقشها را در قاب Details نشان می دهد.
۲- Role 3 Lesson را در قاب Details انتخاب کرده و کلید Delete را فشار می دهیم. SQL Server یک متنی را نشان می دهد که از شما برای تأیید حذفیات می پرسد.
۳- Yes را کلیک می کنیم. SQL Server ، نقش را از پایگاه داده حذف می کنیم.