بخشی از مقاله
پایگاه داده sql server
مقدمه :
يكي از نكات مهم مديريت يك پايگاه داده حصول اطمينان از امنيت اطلاعات است شما بايد مطمئن باشيد هر شخص كه لازم است به طور قانوني به اطلاعات دسترسي داشته باشد مي تواند به آنها را بدست آورد ولي هيچ كس نمي تواند بدون اجازه به آنها دسترسي داشته باشد .
نياز به امنيت
قبل ازاينكه به بحث در مورد امنيت در SQL بپردازيم لازم است نياز به امنيت را به درستي درك كنيم خطرات امنيتي از سه ناحيه مورد بحث قرار مي گيرند .
1- فراميني كه از خارج به سيستم وارد مي شوند : مزاحمين خارجي افرادي هستند كه كوشش مي كنند از خارج از شركت به سيستم هايتان دستيابي پيدا كنند . كه اين كاردلايلي مثل اذيت كردن شوخي ، فروش اطلاعات به شركت ديگر باشد از آنجا كه بيشتر شركت ها اقدامات اصولي وساده اي را براي پيشگيري از اين نوع مزاحمت انجام مي دهد اين نوع مزاحمت به ندرت پيش مي آيد.
2- افراد شركت تان اين نوع مزاحمت متداولترين نوع آن است اين افراد معمولا انگيزه نهائي براي دستيابي به داده هايي دارند كه نمي بايست آنها را ببيند . كه اين انگيزه ممكن است كنجكاوي محض ويا سوء نيت باشد .
3- مزاحمت تصادفي : كه نسبتا متداول است در اينجا كاربري دارد سيستم مي شود وانتظار مي رود كه نتيجه خاص بدست آورد ولي آن نتيجه را بدست نمي آورد بلكه اطلاعات بسيار بيشتري نسبت به آنچه انتظار داشتند بدست مي آورد .
اشخاصي كه در شركتتان كار مي كنند ، احتمالا متداولترين نوع مزاحمت براي سيستم تا ن به شمار مي آيند . اين افراد معمولا انگيزه نهائي براي دستيباي به
داده هايي دارند كه نمي بايست آنها را ببينند . قدري از اين انگيزه ممكن است كنجكاوي محض باشد ، و قدري از آن نيز ممكن است سوء نيت صرف باشد . براي متوقف كردن در اين نوع مزاحمت ، واقعا بايد با سوء ظن به تمام سيستم هاي خود بنگريد و آنها را تا حد ممكن قفل كنيد . وقتي چنين كاري مي كنيد ، برخي از كاربران شكايت مي كنند لازم است به تمامي اين گونه مسائل پاسخ دهيد وبه آنها توضيح دهيد كه چرا سيستم ها را قفل مي كنيد .
مزاحمت تصادفي نيز نسبتا متداول است چيزي كه در اين حالت رخ مي دهد آن است كه كاربري وارد سيستم مي شود و انتظار دارد كه نتيجه خاصي به دست آورد ، وليكن آن نتيجه را به دست نمي آورد بلكه ، كاربران اطلاعات بسيار بيشتري نسبت به آنچه كه انتظار داشتند به دست مي آورند .
اصول امنيت SQL سرور
SQL سرور واژه ها و مفاهيم زيادي كه بايد با آنها آشنا شويد اين مفاهيم شامل مراحلي مي شوند كه SQL سرور با انجام آنها به يك كاربر امكان مي دهد تا تحت مدهاي امنيتي مختلف ، كه به زودي بررسي خواهند شد ،بايك بانك اطلاعاتي ارتباط برقرار كند ابتدا بايد واژه هاي بيشتري را فرا بگيريد اين واژه ها عبارتند از :
• ID برقراري ارتباط ID برقراري ارتباط بخشي از اطلاعات اعتبار كاربر است كه كاربر براي دستيابي به SQL سرور ارائه مي دهد بسته به مد امنيتي مورد استفاده در سرويس دهنده ، كاربر ممكن است مجبور به ارائه ID نباشد .
• كلمه عبور اين امر ممكن است بارز باشد ، اما هر كلمه عبور صرفا رشته اي از كاراكترها است كه براي اعلام اعتبار كاربري كه با يك ID خاص با سرويس دهنده ارتباط برقرارمي كند ، به سرويس دهنده ارسال مي شود . بيشتر شما بايد با قوانين يك كلمه عبور مناسب آشنا باشيد اما لازم است از اين امر مطمئن شويم ، كلمات عبور خوب بايد حرفي – عددي باشند وطول آنها نيز حداقل شش كاراكتر باشد .
• ID كاربر – اين هم يك مرحله ديگر براي دستيابي به يك بانك اطلاعاتي خاص است . ID برقراري ارتباط و كلمات عبور كه در بالا بررسي شدند ، شما را تنها به سرويس دهنده مي رسانند . اگر تنها تا به آن حد پيش رويد ، به هيچ يك از بانك هاي اطلاعاتي آ”ن سرويس دهنده دستيابي نخواهيد داشت . هر كاربري كه به يك بانك اطلاعاتي دستيابي داشته باشد يك ID كاربري در آن خواهد داشت . در بيشتر موارد ID برقراري ارتباطID و كاربري يك چيز هستند . پس از بررسي
درستي ID برقراري ارتباط توسط SQL سرور وتعيين اينكه كاربر مجاز به دستيابي سرويس دهنده است .وي مي بايست يك بانك اطلاعاتي را براي كار انتخاب كند SQL سرور سپس ID برقراري ارتباط با را تمام ID هاي كاربري آن بانك اطلاعاتي مقايسه مي كند تا اطمينان حاصل شود كه كاربر به بانك اطلاعاتي دستيابي دارد اگر هيچ ID كاربريي مطابق با ID برقراري ارتباط وجود نداشته باشد SQL سرور اجازه پيشروي بيشتر را به كاربر نمي دهد .
• انواع نقش هاي مختلفي كه مي توانيد به كاربربدهيد عبارتند از :
• نقشهاي از پيش تعريف شده سرويس دهنده
• نقش هاي از پيش تعريف شده كاربر
• نقش عمومي
• نقش هاي شخص بانك اطلاعاتي
• نقش – هر نقش روشي براي گروه بندي كاربران داراي كارهاي مشابه به منظور آسان شدن مديريت است نقش ها در نگارش هاي قديمي تر SQL سرور تحت عنوان گروه مطرح بودند نقش ها درعمل هنوز همان كار را انجام مي دهند .
به جاي تخصيص مجوز به هر يك از كاربران بانك اطلاعاتي ، به راحتي ميتوانيد يك نقش ايجاد كنيد و پس از قرار دادن كاربران در آن نقش مجوزها را به آن نقش تخصيص دهيد انجام اين كار سبب صرفه جويي در وقت مديريت مي شود تنها كاري كه بايد انجام دهيد آن است كه وي را دراين نقش قرار دهيد چو ن بسياري از مديران قديمي SQL سرور هنوز مشغول كار هستند ، بازهم خواهيد ديد كه از واژه گروه به جاي نقش استفاده مي شود .
• نقش برنامه كاربردي – اين نقش يك نقش ويژه است كه امكان دستيابي به داده هاي موجود در بانك اطلاعاتي را تنها به برنامه هاي كاربردي خاص مي دهد . بيشتر مديران SQL سرور سالها اين نوع ويژگي را درخواست كرده اند كار يكه اين نقش انجام مي دهد آن است كه كاربران را مجاب مي كند تا از طريق برنامه كاربردي به داده هاي بانك اطلاعاتي دستيابي پيدا كنند اين ويژگي از اهميت خاصي برخوردار است . چرا كه بيشتر كاربران قادر به استفاده از برنامه هاي كاربردي خاصي چون ميكروسافت اكسس خواهند بود كه مي تواند با بانك اطلاعاتي ارتباط برقرار كند و دستيابي مستقيم به جداول موجود در آن را براي كاربران فراهم كند . اين كار كاربران را مجاب به استفاده از برنامه كاربردي مي كند كه خصوصا براي دستيابي به داده ها نوشته شده و از دستيابي برنامه هاي كاربردي ديگر جلوگيري مي شود .
• گروههاي ويندوز NT امنيت SQL سرور شديدا بر امنيت ويندوز NT بنا شده است گروههاي ويندوز NT مستقيما به نقش هاي SQL سرور قابل نگاشت هستند ، از اين رو هر كاربري كه جزئي از آن گروه باشد ، به طور خودكار به SQL دستيابي خواهد داشت .
فرايند بررسي اعتبار
وقتي كاربري اقدام به دستيابي به سرويس دهنده مي كند چهار چيز كنترل ميشود در هر مقطع كنترل مي شود كه كاربران مجاز به دستيابي هستند يا خير . اگر چنين باشد امكان پيشروي به آنها داده مي شود در غير اين صورت كاربر ،
پيام خطايي دريافت خواهد كرد وكار وي متوقف مي شود .
نخستين سطح اين امنيت ، در سطح شبكه است كاربران در بيشتر مواقع با يك شبكه ويندوز NT ارتباط برقرار خواهند كرد ،اما با هر شبكه ديگري كه در كنار شبكه مذكور وجود داشته باشد نيز مي توانند ارتباط برقرار كنند . كاربر بايد يك IDبرقراري ارتباط ويك كلمه عبور معتبر شبكه وارد كند ، در غيراين صورت پيشرفت كار وي در همين سطح متوقف خواهد شد به نظر مي رسد كه چند روش براي گذشتن از اين سطح امنيتي وجوددارد ، اماواقعا اين طور نيست يك حالت در مواقعي است كه يك كاربر بخواهد با استفاده از يك بانك اطلاعاتي واكشي كند اگر چه كاربر براي دست
يابي به شبكه ممكن است نياز به وارد كردن اطلاعات برقراري ارتباط نداشته باشد اما account كه برنامه كاربردي در سرويس دهنده تحت آن درحال اجرا است حتما بايد با شبكه ارتباط برقرار كند.
دومين سطح امنيت در خود سرويس دهنده است وقتي كاربر به اين سطح ميرسد ، مي بايست يكID برقراري ارتباط و يك كلمه عبور معتبر براي پيشروي ارائه كنيد بسته به مد امنيتي كه در سرويس دهنده به كار مي بريد ، SQL سرور ممكن است بتواندIDبرقراري ارتباط با ويندوزNT را تعيين نمايد .
سومينسطح امنيت يك سطح جالب است وقتي كاربر از سطح دوم عبور ميكند
معمولا فرض براين است كه مجوزهاي لازم براي دستيابي به بانك اطلاعاتي در آن سرويس دهنده را دارد ، اما اين امر حقيقت ندارد در عوض آنچه كه رخ مي دهد آن است كه كاربر بايد يك كاربريID در بانك اطلاعاتي كه مي خواهد به آن دستيابي داشته باشد نيز داشته باشد هيچ كلمه عبوري در اين سطح مطرح نيست در عوضID برقراري ارتباط توسط مدير سيستم باID كاربري نگاشت مي شود چنانچه كاربري ID در بانك اطلاعاتي نداشته باشد ، كار زيادي نمي تواند انجام دهد مگر در اين حالت ممكن است يك IDكاربري مهمان در يك بانك اطلاعاتي وجود داشته باشد در اين حالت آنچه كه رخ مي دهد آن است كه كاربر از طريق IDبرقراري ارتباط به سرويس دهنده دستيابي پيدا كرده است اما به بانك اطلاعاتي دستيابي ندارد و بانك اطلاعاتي حاوي يكID كاربري مهمان است مجوزها را ميتوان به كاربريID مهمان تخصيص داد درست به همان گونه اي كه به كاربران ديگر قابل تخصيص هستند بانك هاي اطلاعاتي جديد طبق پيش فرض فاقد IDكاربري مهمان هستند .
آخرين سطح امنيت SQL سرور با مجوزهاي سرو كار دارد آنچه كه در اين سطح رخ مي دهد آن است كه SQLسرور كنترل مي كند كهID كاربريي كه كاربر از طريق آن به سرويس دهنده دستيابي پيدا كرده است مجوزهاي دستيابي به شي ء هاي مورد نظر را داشته باشد اين امكان وجود دارد كه دستيابي تنها براي برخي از شي ء هاي آن بانك اطلاعاتي باشد ونه تمام شي ء ها كه معمولا نيز اينگونه است .
همان گونه كه ملاحظه مي كنيد ، سطوح امنيت مي توانند دستيابي به سرويس دهنده را براي كاربران غير مسئوول بسيار دشوار كنند .
SQL سرور دو روش مختلف براي بررسي اعتبار كاربران و معرفي آنها به سرويس دهنده دارد بررسي اعتبار ويندوز NT كه براي انجام تمام كارها به ويندوز NT متكي است روش دوم بررسي اعتباراتي SQLسرور كه به ويندوز NT امكان مي دهد تا علاوه بر كارهاي بررسي اعتبار خاص خود ، بررسي اعتبار را اساسي اطلاعاتي كه وارد مي كند براي SQL سرور انجام مي دهد .
سيستم شناسايي ويندوز
در اين روش مدير سيستم براي كاربران يا گروههاي كاربري ويندوز حق دسترسي تعيين مي كندكامپيوترهاي مشتري كه ازسرويس هاي كامپيوتر مركزي استفاده مي كنند به اين كامپيوتر ه است شناسايي مي شود واگر اجازه دسترسي داشته باشد به آن متصل مي گردد در اين حالتServer SQL تنها كافي است بررسي كند كه آيا كاربر متصل شده حق دسترسي به سرويس دهنده وپايگاه داده را دارد يا خير ؟
سيستم شناساييServer SQL
در اين روش هنگامي كه يك درخواست براي اتصال فرستاده مي شود Server SQL يكLogin ID او يك كلمه عبور دريافت مي كند وسپس Login مزبور را با ليست Login هاي تعريف شده توسط مدير سيستم مقايسه مي كند .
برقراري ارتباط با سرويس دهنده و كاربران بانك اطلاعاتي
همچون تمام كارهاي ديگري كه در SQL سرور انجام مي دهيد روشهاي مختلف زيادي براي ايجادID هاي برقراري ارتباط وID هاي كاربري وجود دارد نخستين روش براي انجام اين
كار از طريق يك ويزارد درEnterprise Manager SQL است .
اين ويزارد شما راگام به گام در ايجاد يكID برقراري ارتباط ويك IDكاربري ياري مي كند دليل يكي كردن آنها آن است كه درواقع در ارتباط بايكديگر ايجاد مي شوند روش دوم براي ايجاد ID ها استفاده از رويه هاي ذخيره شده است اگر از اين روش استفاده كنيد ،درصورت نياز مي توانيد همان ID ها را در تمام سرويس دهند ها ايجاد كنيد آخرين روش ،ايجاد مجزاي آنها درEnterprise Manager SQL است .