گزارش کارآموزی سایت دانشگاه :
پیشگفتار :
دانشگاه بین المللی امام خمینی (ره) قزوین یک دانشگاه بزرگ با تعداد زیادی دانشجوی ایرانی و خارجی است ، ثبت نام ، حذف و اضافه ، مشاهده کارنامه و وضعیت مالی و آموزی و برقراری ارتباط دانشجویان با ابن دانشگاه بصورت الکترونیکی با استفاده از یک سایت داینامیک انجام می گیرد ، این سایت که با استفاده از زبان برنامه نویسی پی اچ پی طراحی شده است ، بسیار قدرتمند و جامع است در طول دوره کارآموزی دردانشگاه بین المللی امام خمینی (ره) قزوین ، با سیستم های با سیستم های ثبت نام دانشجویی آنلاین این دانشگاه آشنا شدیم ، فعالیت در سایت بزرگ و پر مخاطب این دانشگاه که با داشتن دانشجویان بسیار زیاد در زمان انتخاب واحد و حذف و اضافه با فشار مراجعه کنندگان مواجه می شود در بحث ذخیره و بازیابی اطلاعات و همچنین امنیت شبکه اطلاعات مفیدی را برای ما ایجاد نمود
فصل اول
معرفی سایت ( وبگاه ) دانشگاه
وبگاه دانشگاه :
نسخه 3.3وبگاه فارسی در نیمه خرداد 1387 آماده بهره برداری شد..
بخشی از اطلاعات فنی وبگاه جدید
طراحی مجدد گرافیک نوار اصلی بالایی صفحه اصلی و طراحی مجدد آیکون های استفاده شده در وبگاه ، تکمیل سیستم اطلاعات تلفن دانشگاه ، ایجاد سیستم اطلاعات اساتید دانشگاه ، ایجاد سیستم اولویت های پژوهشی ،استاندارد سازی کلیه صفحات وب فارسی (270 صفحه ) بر اساس استاندارد xhtml , css و ابزار w3c
همکاران
دکترحمیدرضا حمیدی : مسئول هماهنگی پروژه مهدی سمساریانها : مدیر پروژه محبوبه آقایی : طراحی صفحات آموزش ، دانشکده ها و پژوهش مژگان طاهائی : طراحی صفحات آشنایی ، ریاست ، اداری ، پذیرش دانشجو ، عمرانی ، امور دانشجویی و پژوهش
در پی درخواست های متعدد مراجعه کنندگان عربی زبان (بطور متوسط هفته ای یک پست الکترونیکی از خارج کشور)، پروژه وبگاه عربی در دستور کار اداره نرم افزار قرار گرفت.اولین نسخه این وبگاه در اول دی ماه 86 بهره برداری شد.
همکاران این پروژه به شرح زیر می باشند:
دکترفارس پورآرین : عضو هیات علمی – ارزیاب نهایی متن عربی ، آقای محمد الدیاب، دانشجوی اهل کشور سوریه – تهیه کننده متن اولیه عربی مهدی سمساریانها : رئیس اداره نرم افزار – مدیر پروژه آقای ربیعی، دانشجوی مهندسی کامپیوتر – مدیر فنی پروژه مژگان طاهائی : کارشناس اداره نرم افزار – طراح و مجری محبوبه آقایی : کارشناس اداره نرم افزار – طراح و مجری علی رامشینی : رئیس دبیرخانه مرکزی ، مشاور فنی و هنری پروژه
نسخه سوم وبگاه فارسی در نیمه دوم خرداد ماه 1386 برروی اینترنت قرارگرفت.این پروژه زیر نظر مدیر وقت فناوری اطلاعات و ارتباطات دانشگاه جناب آقای دکترحمیدرضا حمیدی و توسط پرسنل اداره نرم افزار دانشگاه در طول مدت چند ماه تلاش و کوشش بی وقفه انجام گردید.
بخشی از اطلاعات فنی وبگاه
تعداد صفحات ثابت در حدود 270 صفحه ، تعداد صفحات مربوط به فرم ها و آئین نامه ها در حدود 130 صفحه ، تعداد 12 بخش مدیریتی بصورت تمام دینامیک ، آرشیو مطالب و اخبار مربوط به 55 بخش مختلف دانشگاه ، آرشیو همایش و کنفرانس ها ، آرشیو تلفن های دانشگاه ، آرشیو پیوندهای مرتبط با دانشگاه ، مجموع عکس های تولید و استفاده شده در وبگاه جدید در حدود 50 عدد
همکاران
مهدی سمساریانها : مسئول هماهنگی پروژه و طراحی صفحات پژوهش ودانشجویی علی رامشینی : تحلیل طراحی و پیاده سازی پروژه محبوبه آقایی : طراحی صفحات آموزش و دانشکده ها مژگان طاهائی : طراحی صفحات ریاست ، اداری و آشنایی با تشکر از سرکار خانم سهیلا فتحیکه ما را در تهیه نمودارهای سازمانی دانشگاه یاری نمودند. همچنین با تشکر فراوان از آقایان محمد جباری و مهدی محمدی جهت تهیه نرم افزارجستجوی آفلاین کتاب
نسخه اول وبگاه لاتین با تلاش و جدیت پرسنل اداره نرم افزار طراحی و در دی ماه1385مورد بهره برداری قرار گرفت .
همکاران
مهدی سمساریانها : مسئول هماهنگی پروژه و طراحی صفحات پژوهش ودانشجویی علی رامشینی: تحلیل طراحی و پیاده سازی پروژه محبوبه آقایی :طراحی صفحات آموزش و دانشکده ها مژگان طاهائی:طراحی صفحات ریاست ، اداری و آشنایی آقای محمود سلیمانی :ترجمه مطالب فارسی به انگلیسی وبگاه
نسخه دوم وبگاه فارسی در نیمه خرداد 1385،زیر نظر مدیریت فناوری اطلاعات و ارتباطات دانشگاه افتتاح گردید.شروع به کار این پروژه در اواخر اسفند 1384 بوده که با توجه به نیاز دانشگاه بررسی ها و تحلیل های کارشناسی مختلفی بر روی این پروژه صورت گرفت که در طول مدت دو ماه و نیم کار مداوم اولین فاز نسخه جدید این پروژه طراحی و تولید شد.
این نسخه توسط آقای علی رامشینی به اجرا درآمده است که کلیه مراحل طراحی آن مستقیماً زیر نظر مدیر وقت فناوری اطلاعات و ارتباطات دانشگاه جنابآقای دکتر حمیدرضا حمیدی صورت گرفته است.شایان ذکر است قسمت دانشکده های این نسخه از وبگاه توسط آقای میثم کریمی دانشجویرشته کامپیوتر انجام پذیرفت.
نسخه اول وبگاه فارسی توسط یک شرکت خصوصی طراحی شده بود که تا تاریخ 15/03/1385 مورد استفاده قرار گرفت.
فصل دوم
فعالیت های انجام شده در دوره
امنیت اطلاعات سایت
فصل دوم – امنیت اطلاعات سایت :
پیشگفتار :
بانکهای اطلاعاتی حاوی حجم بسیار زیادی از داده هایی هستندکه چنانچه به دست اشخاص غیر مسئول برسند، می تواند برای شرکت وافراد شرکتتان بسیارزیان آورباشدSQL . سرورسیستم امنیتی با استحکامی دارد که به شما امکان می دهد تا سرویس دهنده را درسطحی قفل کنید که بتوانید دستیابی به سرویس دهنده، ودستیابی به بانک اطلاعاتی رابه ستونهای خاصی از یک جدول محدود کنید.
عناوین مهم این فصل عبارتند از:
▪ نیاز به امنیت
▪ اصول امنیت SQL سرور
▪ مدهای امنیت
▪ برقراری ارتباط با سرویس دهنده وکاربران بانک اطلاعاتی
▪ نقش ها
● نیازبه امنیت
در اینجا لازم است نیاز به امنیت را به درستی درک کنید، خطرات امنیتی از سه ناحیه متصور می شوند:
۱) فرامینی که از خارج به سیستم وارد میشوند:
مزاحمین خارجی افرادی هستند که کوشش میکنند، تا خارج ازشرکت به سیستم هایتان دستیابی پیدا کنند. این افراد به دلایل مختلف چنین کارهایی را انجام می دهند.
به عنوان مثال ممکن است این کاررا صرفا برای اذیت کردن و شوخی انجام دهند واطلاعات را به شرکت دیگری بفروشند .
۲) افرادی که در شرکتتان کار میکنند:
احتمالا متداولترین نوع مزاحمت برای سیستمتان به شمار می آیند. که انگیزه نهایی آنها، دستیابی به داده هایی است که نباید آنها را ببینند.
۳) مزاحمت تصادفی:
مزاحمت تصادفی متداول است.در این حالت کاربر وارد سیستم میشودو اطلاعات بیشتری نسبت به آنچه انتظار دارد به دست می آورد.
اصول امنیت SQL سرور
SQL سرور واژه ها ومفاهیم زیادی دارد که باید با آنها آشنا شوید.این مفاهیم شامل مراحلی است که SQL سروربا انجام آنها به یک کاربر امکان می دهد تا تحت مدهای امنیتی مختلف، که به زودی بررسی خواهند شد، با یک بانک اطلاعاتی ارتباط برقرار کنند. این واژه ها عبارتند از:
1 - ID برقراری ارتباط( Login ID): ID برقراری ارتباط، بخشی از اطلاعات اعتبارکاربراست که کاربر برای دستیابی به SQL سرور ارائه می دهد.
2 - کلمه عبور: هرکلمه عبور صرفا رشته ای ازکاراکترها است که برای اعلام اعتبارکاربری، که با یکID خاص با سرویس دهنده ارتباط برقرار می کند، به سرویس دهنده ارسال می شود.کلمات عبور خوب باید حرفی عددی باشندو طول آنها نیز حداقل 6 کاراکتر باشد.
3 - ID کاربر: یک مرحله دیگر برای دستیابی به بانک اطلاعاتی خاص است، ID برقراری ارتباط و کلمات عبور، شما را تنها به سرویس دهنده میرسانند.
اگر تا به این حد پیش روید، به هیچ یک از بانکهای اطلاعاتی آن سرویس دهنده دستیابی نخواهید داشت.
بعد از بررسی درستیID برقراری ارتباط توسطSQLسرور و تعیین اینکه کاربر مجاز به دستیابی سرویس دهنده است، وی می بایست یک بانک اطلاعاتی را برای کار انتخاب کند وبعد ID برقراری ارتباط را با تمامID های کاربری آن بانک مقایسه می کند تا اطمینان حاصل شود که کاربر به بانک اطلاعاتی دستیابی دارد.
4 -نقش ها : هر نقش روشی برای گروه بندی کاربران دارای کارهای مشابه به منظور آسان شدن مدیریت است. نقش ها در نگارش های قدیمیSQL سرور تحت عنوان گروه مطرح بودند. به جای تخصیص مجوز به هر یک از کاربران بانک اطلاعاتی، به راحتی می توانید یک نقش ایجاد کنید و بعد از قراردادن کاربران به آن نقش، مجوزها را به آن نقش تخصیص دهید.
4 -نقش ها : هر نقش روشی برای گروه بندی کاربران دارای کارهای مشابه به منظور آسان شدن مدیریت است. نقش ها در نگارش های قدیمیSQL سرور تحت عنوان گروه مطرح بودند. به جای تخصیص مجوز به هر یک از کاربران بانک اطلاعاتی، به راحتی می توانید یک نقش ایجاد کنید و بعد از قراردادن کاربران به آن نقش، مجوزها را به آن نقش تخصیص دهید.
5 - نقش برنامه کاربردی: یک نقش ویژه است که امکان دستیابی به داده های موجود در بانک اطلاعاتی را تنها به برنامه های کاربردی خاص می دهد. کاری که این نقش انجام می دهد، آن است که کاربران را مجاب می کند تا از طریق برنامه کاربردی به داده های بانک اطلاعاتی دستیابی پیدا کنند. این کار کاربران را مجاب به استفاده از برنامه کاربردیی می کند که خصوصا برای دستیابی به داده ها نوشته شده و از دستیابی برنامه های کاربردی دیگر جلوگیری میشود.
6 - گروه های ویندوزNT :امنیتSQL سرور، شدیدا بر امنیت ویندوزNT بیان شده است
گروه های ویندوزNT مستقیما به نقش هایSQL سرورقابل نگاشت هستند، از این رو هر کاربری که جزئی از آن گروه باشد، به طور خودکار بهSQL دستیابی خواهد داشت.
فرآیند بررسی اعتبار: وقتی کاربری اقدام به دستیابی به سرویس دهنده میکند، 4چیز کنترل می شود
1 - امنیت در سطح شبکه: که نخستین سطح امنیت است. کاربران در بیشتر مواقع با یک شبکه ویندوزNT ارتباط برقرار خواهند کرد، اما با هر شبکه دیگری که در کنار شبکه مذکور وجود داشته باشد، نیز می توانند ارتباط برقرار کنند. کاربر باید یکID برقراری ارتباط و یک کلمه عبور معتبر شبکه وارد کند و اگر نه در همین سطح متوقف خواهد شد.
2 - امنیت در خود سرویس دهنده: که دومین سطح امنیت است. وقتی کاربر به این سطح می رسد، می بایست یک ID برقراری ارتباط و یک کلمه عبور معتبربرای پیشروی ارائه کند. بسته به مد امنیتی که در سرویس دهنده به کار میبرید،SQL سرور ممکن است بتواندID برقراری ارتباط با ویندوزNT را تعیین نماید.
3 - نیاز به یکID کاربری در بانک اطلاعاتی: که سومین سطح امنیت است. هیچ کلمه عبوری در این سطح مطرح نیست. در عوض،ID برقراری ارتباط توسط مدیر سیستم باID کاربری نگاشت می شود.
4 - ارتباط امنیت با مجوزها: آخرین سطح امنیت است.SQL سرور کنترل میکند کهID کاربریی که کاربر از طریق آن به سرویس دهنده دستیابی پیدا کرده است، مجوزهای دستیابی به شیءهای مورد نظر را داشته باشد.این امکان وجود دارد که دستیابی فقط برای برخی شیءها باشدو نه تمام شیءها
مدهای امنيت
SQL سروردو روش مختلف برای بررسی اعتبار کاربران ومعرفی آنها به سرویس دهنده دارد.
1 - روش نخست: بررسی اعتبار ویندوزNT : ویندوزNT می تواند از ویژگیهای بسیار بیشتری در سیستم امنیتی خود استفاده کند، از جمله: حداقل طول برای کلمات عبور، تاریخ انقضای کلمات عبور، جلوگیری از برقراری ارتباط بعد از چند اقدام ناموفق. به هنگام استفاده از این روش، کاربر برای دستیابی به سرویس دهنده نیازی به ارائهID برقراری ارتباط و کلمه عبور ندارد، در عوضSQL سرور نام کاربر را از ویندوزNT می خواهد وآن را با فهرست کاربران مجاز مقایسه می کند. مراحل زیر شما را درآماده سازیSQL سرور برای استفاده از روش بررسی اعتبار ویندوزNT یاری می کنند:
1 - .SQL Server Enterprise Manager را باز کنید وبا سرویس دهنده ای که می خواهید مد امنیتی آن را تغییر دهید ارتباط برقرار کنید.
2 - گزینه Properties را انتخاب کنید.
3 - تب Security را پيدا کنید وآن را برگزینید.
4 - گزینه Windows NT Authentication را انتخاب کنید.
5.SQL Server را دوباره راه اندازی کنید.
اصول امنیتSQL سرور
SQL سرور واژه ها ومفاهیم زیادی دارد که باید با آنها آشنا شوید.این مفاهیم شامل مراحلی است که SQL سروربا انجام آنها به یک کاربر امکان می دهد تا تحت مدهای امنیتی مختلف، که به زودی بررسی خواهند شد، با یک بانک اطلاعاتی ارتباط برقرار کنند. این واژه ها عبارتند از:
۱) I برقراری ارتباط( Login ID): ID برقراری ارتباط، بخشی از اطلاعات اعتبارکاربراست که کاربر برای دستیابی به SQL سرور ارائه می دهد.
۲) کلمه عبور: هرکلمه عبور صرفا رشته ای ازکاراکترها است که برای اعلام اعتبارکاربری، که با یکID خاص با سرویس دهنده ارتباط برقرار می کند، به سرویس دهنده ارسال می شود.کلمات عبور خوب باید حرفی عددی باشندو طول آنها نیز حداقل ۶ کاراکتر باشد.
۳) ID کاربر: یک مرحله دیگر برای دستیابی به بانک اطلاعاتی خاص است، ID برقراری ارتباط و کلمات عبور، شما را تنها به سرویس دهنده میرسانند.
اگر تا به این حد پیش روید، به هیچ یک از بانکهای اطلاعاتی آن سرویس دهنده دستیابی نخواهید داشت.
بعد از بررسی درستیID برقراری ارتباط توسطSQLسرور و تعیین اینکه کاربر مجاز به دستیابی سرویس دهنده است، وی می بایست یک بانک اطلاعاتی را برای کار انتخاب کند وبعد ID برقراری ارتباط را با تمامID های کاربری آن بانک مقایسه می کند تا اطمینان حاصل شود که کاربر به بانک اطلاعاتی دستیابی دارد.
۴) نقش ها:هر نقش روشی برای گروه بندی کاربران دارای کارهای مشابه به منظور آسان شدن مدیریت است. نقش ها در نگارش های قدیمیSQL سرور تحت عنوان گروه مطرح بودند. به جای تخصیص مجوز به هر یک از کاربران بانک اطلاعاتی، به راحتی می توانید یک نقش ایجاد کنید و بعد از قراردادن کاربران به آن نقش، مجوزها را به آن نقش تخصیص دهید.
۵) نقش برنامه کاربردی: یک نقش ویژه است که امکان دستیابی به داده های موجود در بانک اطلاعاتی را تنها به برنامه های کاربردی خاص می دهد. کاری که این نقش انجام می دهد، آن است که کاربران را مجاب می کند تا از طریق برنامه کاربردی به داده های بانک اطلاعاتی دستیابی پیدا کنند. این کار کاربران را مجاب به استفاده از برنامه کاربردیی می کند که خصوصا برای دستیابی به داده ها نوشته شده و از دستیابی برنامه های کاربردی دیگر جلوگیری میشود.
۶) گروه های ویندوزNT :امنیتSQL سرور، شدیدا بر امنیت ویندوزNT بیان شده است
گروه های ویندوزNT مستقیما به نقش هایSQL سرورقابل نگاشت هستند، از این رو هر کاربری که جزئی از آن گروه باشد، به طور خودکار بهSQL دستیابی خواهد داشت.
فرآیند بررسی اعتبار: وقتی کاربری اقدام به دستیابی به سرویس دهنده میکند، ۴چیز کنترل می شود
۱) امنیت در سطح شبکه: که نخستین سطح امنیت است. کاربران در بیشتر مواقع با یک شبکه ویندوزNT ارتباط برقرار خواهند کرد، اما با هر شبکه دیگری که در کنار شبکه مذکور وجود داشته باشد، نیز می توانند ارتباط برقرار کنند. کاربر باید یکID برقراری ارتباط و یک کلمه عبور معتبر شبکه وارد کند و اگر نه در همین سطح متوقف خواهد شد.
۲) امنیت در خود سرویس دهنده: که دومین سطح امنیت است. وقتی کاربر به این سطح می رسد، می بایست یک ID برقراری ارتباط و یک کلمه عبور معتبربرای پیشروی ارائه کند. بسته به مد امنیتی که در سرویس دهنده به کار میبرید،SQL سرور ممکن است بتواندID برقراری ارتباط با ویندوزNT را تعیین نماید.
۳) نیاز به یکID کاربری در بانک اطلاعاتی: که سومین سطح امنیت است. هیچ کلمه عبوری در این سطح مطرح نیست. در عوض،ID برقراری ارتباط توسط مدیر سیستم باID کاربری نگاشت می شود.
۴) ارتباط امنیت با مجوزها: آخرین سطح امنیت است.SQL سرور کنترل میکند کهID کاربریی که کاربر از طریق آن به سرویس دهنده دستیابی پیدا کرده است، مجوزهای دستیابی به شیءهای مورد نظر را داشته باشد.این امکان وجود دارد که دستیابی فقط برای برخی شیءها باشدو نه تمام شیءها.
برقراری ارتباط باسروس دهنده وکاربران بانک اطلاعاتی
همانند کارهای دیگری که درSQL سرورانجام می دهید، روشهای مختلف زیادی برای ایجادID های برقراری ارتباط وID های کاربری وجود دارد. نخستین روش برای انجام این کارازطریق یک ویزارد درSQL Enterprise Manager است. این ویزارد شما را گام به گام در ایجاد یک ID برقراری ارتباط ویک ID کاربری یاری می کند
روش دوم برای ایجاد ID ها، استفاده از رویه های ذخیره شده است. اگراز این روش استفاده کنید، درصورت نیاز می توانید همان ID هارا درتمام سرویس دهنده ها ایجاد کنید. آخرین روش، ایجاد مجزای آنها در SQL Enterprise Manager است.
گزینه دیگری که برای افزودن یک ID کاربر دارید، ازرویه های ذخیره شده واجرای SQL Query Analyzer است.
برای بررسی اعتباربا ویندوزNT باید ازرویه ذخیره شده sp-grantloginاستفاده کنید.
وقتی ازروش بررسی اعتبار SQL سروراستفاده می کنید،ازرویه ذخیره شده sp-addloginاستفاده کنید.
قالب sp-grantlogin به شکل زیراست:
sp-grantlogin [@loginname= ]’login’
نامی که پس از sp-grantlogin باید مشخص شود،نام کاربری ویندوزNT و نام حوزه ای است که کاربر در آن قرار دارد.
به عنوان مثال، برای اینکه کاربری به نامMrMoney از حوزهMonopoly را بهSQL سرور بیفزایید، می بایست دستور زیر را اجرا کنید:
sp-grantlogin’Monopoly/Mr Money’
دستور بالا مجوز دستیابی به بانک اطلاعاتی را به آن کاربر اعطا می کند، اما دستیابی بیشتر را برای وی فراهم نمی کند.
نقش ها
نقش ها اساسا گروههایی هستند که می توانید برای گروه بندی کاربرانی به کار برید که نیازهای دستیابی آنها مشابه است.
انواع نقش های مختلفی که می توانید به کار برید عبارتند از:
۱) نقش های از پیش تعریف شده سرویس دهنده
۲) نقش های از پیش تعریف شده بانک اطلاعاتی
۳) نقش عمومی
۴) نقش های شخصی بانک اطلاعاتی
نقش های از پیش تعریف شده سرویس دهنده
نقش های سرویس دهنده برای آن هستند تا برخی از کارهای مدیریتی سرویس دهنده را به اشخاص دیگر واگذار کنید.
هفت نقش از پیش تعریف شده سرویس دهنده به شرح زیر هستند:
▪ sysadmin : اعضای این نقش می توانند هر عملی را در سرویس دهنده انجام دهند. این نقش، مشابهaccount ی به نام sa در نگارش های پیشینSQL سرور است.
▪ serveradmin : اعضای این نقش می توانند پیکربندی مشخصات سرویس دهنده را انجام دهند.
▪ setupadmin : اعضای این نقش مجازند پیوندهای سرویس دهنده ها را حذف یا اضافه کنند.
▪ Securityadmin : اعضای این گروه می توانند برقراری ارتباط با سرویس دهنده را مدیریت کنند.
▪ processadmin : اعضای این گروه می توانند هر فرآیندی را که درSQLسرور اجرا می شود را مدیریت کنند.
▪ dbcreator : این گروه مجوز ایجاد بانکهای اطلاعاتی در سرویس دهنده را دارد.
▪ diskadmin : این گروه مجوز ایجاد و مدیریت فایل ها در دیسک را دارد.
نقش های از پیش تعریف شده بانک اطلاعاتی
نقش های از پیش تعریف شده بانک اطلاعاتی به کاربران امکان می دهند تا عملیات گوناگونی را انجام دهند.
نه نقش از پیش تعریف شده بانک اطلاعاتی عبارتند از:
db-owner: اعضای این گروه به عنوان مالک بانک اطلاعاتی تعریف می شوند.
▪ db-accessadmin:عضویت در این گروه به کاربر امکان می دهد تا کاربران ویندوزNT وSQL سرور را در بانک اطلاعاتی حذف یا به آن بیفزاید.
▪ db-datareader: اعضای این گروه می توانند تمام داده های جداول کاربری بانک اطلاعاتی را ببینند.
▪ db-datawriter: اعضای این گروه مجوز افزودن، تغییریا حذف داده های تمام جداول کاربری بانک اطلاعاتی را دارند.
▪ db-ddladmin: به کاربرامکان می دهد تا شئ های یک بانک اطلاعاتی راحذف، اضافه یا اصلاح کند.
▪ db-securityadmin: اعضای این گروه می توانند نقش ها و اعضای نقش های بانک اطلاعاتیSQL سرور را مدیریت کنند.
▪ db-backupoperator: اعضای این نقش مجوز تهیه نسخه پشتیبان از بانک اطلاعاتی را دارند.
▪ db-denydatareader: اعضای این گروه نمی توانند هیچیک از داده های بانک اطلاعاتی را ببینند.
▪ db-denydatawriter: اعضای این گروه هیچ مجوزی برای تغییر داده های بانک اطلاعاتی ندارند.
نقش عمومی
نقش عمومی یک نوع نقش بانک اطلاعاتی ویژه است که تمام کاربران بانک اطلاعاتی عضوی از آن هستند. این نقش به هنگام ایجاد تمام بانک های اطلاعاتی ایجاد می شود.
فایده این نقش زمانی مشخص می شود که می خواهید مجموعه ای از مجوزهای پیش فرض را به تمام کاربران بدهید.
نقش های شخصی بانک اطلاعاتی
نقش های شخصی بانک اطلاعاتی، نقش هایی هستند که مدیر سیستم برای مقاصد ویژه ایجاد می کند. این نقش ها توانایی تخصیص مجوزهای ویژه ای را فراهم می کنند که در نقش های از پیش تعریف شده موجود نیستند. قوانینی که می بایست به هنگام ایجاد این نقش ها به خاطر داشته باشید عبارتند از:
نقش های شخصی بانک اطلاعاتی در محدوده یک بانک اطلاعاتی ایجاد می شوند و در وسط چند بانک اطلاعاتی قابل گسترش نیستند.
کاربران در هر لحظه نمی توانند به بیش از یک نقش شخصی بانک اطلاعاتی تعلق داشته باشند.
نقش های شخصی می توانند حاویID های برقراری ارتباط ویندوزNT،IDهای برقراری ارتباطSQLسرور و دیگر نقش های SQLسرور باشند
ابزارهای امنیتی در SQL Server
ابزارهای کوچک و بزرگ زیادی در رابطه با امنیت SQL Server ارایه شدهاند، که بعضی آنها برای حمله و بعضی دیگر برای دفاع و تقویت امنیت SQL Server به کار می روند.
ابزارهایی ارایه شدهاند که با بکارگیری آنها می توان یک SQL Server امن داشت. ضمناً ابزارهای حمله بسیاری نیز وجود دارند که آشنائی با آنها می تواند دید خوبی در رابطه با امنیت SQL Server و جلوگیری از آسیب های آن بوجود آورد. بنابراین در دو بخش زیر خلاصهای درباره ی بعضی از ابزارهای حمله و نیز دفاع، ارایه خواهد شد.
ابزارهای حمله
ابزارForceSQL نسخه 2.0
این ابزار برای بدست آوردن رمز عبور یک SQL Server استفاده می شود. ForceSQL دارای ویژگی¬های زیر است:
کنترل و راهبری آسان آن در خط فرمان
اجرای حمله دیکشنری (1)
اجرای حمله فراگیر(2)
بکارگیری درگاهی به غیر از درگاه 1433
ابزار SQLDict:
این ابزار که در سطر فرمان تمامی ویندوزها قابل اجرا است، تدارک یک حمله دیکشنری علیهSQL Server را می دهد. جهت بکارگیری آن باید IP ماشین هدف، شناسهی کاربری که میخواهید رمز او را به دست آورید و فایلی که حاوی رمزهای عبور برای چک کردن می باشد را مشخص کنید.
ابزار CPMdeamon :
این برنامه که در محیط لینوکس نوشته شده است، یک کد CGI را اجرا میکند و اجازهی عوض کردن رمز عبور را از راه دور می دهد.
ابزار SQLScanner.exe :
این ابزار که در سطر فرمان ویندوز اجرا می شود، یک محدوده آدرس IPاز نوع کلاس B(XXX.XXX) و نام یک فایل خروجی را به عنوان پارامتر می گیرد، و سپس محدوده را جستجو کرده و IP¬هایی را که دارای Sql Server هستند مشخص می نماید و در فایل خروجی لیست می کند. این ابزار قادر به شناسایی SQL Serverهایی که از درگاه استاندارد 1433 استفاده نمی کنند نیز می باشد.
ابزار SqlPing.exe:
این برنامه ی سطر فرمان ویندوز، اطلاعات مفیدی (نظیر نام سِرور، شماره ی نسخه ، شماره ی درگاه و ....) در مورد یک SQL Server نصب شده بر روی یک IP خاص ارائه می دهد.
ابزارNGSSQLCrack :
ابزار NGSSQLCrack ابزاری است که جهت شکستن رمز عبور در SQL Server 7 و 2000 بکار گرفته می شود.
ابزار های دفاعی
ابزار SQL Critical Update:
SQL Critical Update بستهای نرمافزاری است که توسط شرکت مایکروسافت ارائه شده و شامل اجزای زیر است:
ابزار SQL Critical Update : که در آن یک وصله ی امنیتی برای نسخههایی از SQL Server 2000 و MSDE 2000 که در برابر کرم Slammer آسیبپذیرند قرار داده شده است.
ابزار SQL Scan : با استفاده از این ابزار می توان یک کامپیوتر، یک دامنه و یا محدودهای از آدرس ها را برای یافتن یک نسخه ی نصب شده از SQL Server 2000 یا MSDE 2000 که در برابر کرم Slammer آسیبپذیر است، کنترل نمود.
ابزار SQL Check : با استفاده از این ابزار می توان یک کامپیوتر را برای یافتن نسخه های آسیبپذیرSQL Server 2000 یا MSDE 2000 در برابر کرم Slammer، چک کرد.
ابزار Microsoft Baseline Security Analyzer (MBSA) :
یک ابزار مجانی ارائه شده از سوی مایکروسافت میباشد که قادر است یک کامپیوتر دارای ویندوز را در برابر وجود پیکربندیهای اشتباه و یا به روز نبودن نرمافزارها بر اساس آخرین بهنگام سازی های امنیتی ارایه شده، چک کند.
ابزار SQLLiteSpeed :
SQL LiteSpeed یک نرمافزار پیشرفته برای تهیه ی پشتیبان از بانک های اطلاعاتی SQL Server، در قالب فایل های رمزنگاری شده است.
ابزار EnforcePass :
بسیاری از حملات بر اساس کشف کلمات عبور ضعیف و قابل حدس انجام می گیرند. این ابزار که در واقع یک تابع است، با توجه به معیارهای زیر، از بکارگیری کلمات عبور ضعیف توسط راهبر SQL Server و کاربران جلوگیری می کند.
کلمه عبور نباید شامل کلمه شناسه ی عبور باشد.
طول کلمه ی عبور باید بیش از شش باشد.
کلمه ی عبور باید شامل حداقل یک حرف، یک رقم و یک کاراکتر از علایم باشد.
این تابع باید درون رویههای ذخیرهشده sp_password و sp_addlogin موجود در SQL Server قرار گیرد.
ابزار AppDetective. for Microsoft SQL Server :
این نرمافزار یک ابزار برای برآورد کردن میزان امنیت برنامههای کاربردی موجود در شبکه ی شماست.
ابزار NGSSQuirreL :
NGSSQuirreL یک ابزار بررسی امنیت برنامه است که مخصوص Microsoft SQL Server طراحی شده است.
1- در این نوع حمله رمز عبور در برابر یک سری کلمات خاص که کاربر آنها را مشخص میکند، چک میشود.
2- در این نوع حمله رمز عبور در برابر تمام ترکیبات موجود کاراکترهای کشخص شده (حروف، ارقام و ...) تا یک طول مشخص چک میشود.
امنيت در ورود به سيستم
زماني كه يك بانك اطلاعاتي جديد را در SQL Server تعريف ميكنيد، با كليك سمت راست بر روي نام موتور پايگاه دادهاي يك سرور درEnterprise Manager و انتخاب قسمت Properties، در زبانه security، موتور بانك اطلاعاتي
امكان انتخاب دو روش مختلف در معرفي و يا شناسايي كاربران مجاز براي ورود به سيستم يا همان عمل احراز هويت (Authentication) را در دسترس قرار ميدهد. البته بعد از ساخت يك بانك اطلاعاتي، با كليك سمت راست بر روي نام آن بانك و انتخاب گزينه Properties و سپس security هم ميتوان روش مورد استفاده را تغيير داد. (شكل 1)
يكي از اين دو روش كه برمبناي ارتباط موتور اين پايگاه داده با اكتيودايركتوري ويندوز 2000 سرور بنا شده است و Windows only نام دارد، باعث ميشود تا كاربران از قبل تعريف شده در دامنه (Domain) يك شبكه مبتني بر ويندوز 2000 سرور، به رسميت شناخته شوند. در اين صورت نيازي به معرفي كاربر جديد و يا انتخاب دو نام كاربري براي يك نفر وجود ندارد و كاربر مذكور ميتواند از همان نام كاربري و رمز عبوري كه براي ورود به دامنه شبكه ويندوزي خود استفاده ميكند، براي اتصال به بانك اطلاعاتي هم استفاده كند.
در روش دوم، ارايه مجوز دسترسي به كاربران با سيستمي خارج از محدوده دامنهويندوزي صورت ميگيرد. بدينصورت مدير سيستم مجبور است براي كليه كاربراني كه قصد اتصال به بانك را دارند، نام كاربري و رمزعبور جديدي را تعريف كند.
تعريف كاربران
در صورتي كه شيوه دوم تعريف كاربران را انتخاب كرده باشيد، بايد ابتدا ليستي از كاربران را به همراه رمزعبور مربوطهشان در قسمتي از صفحه Enterprise Manager كه با عنوان Security مشخص شده، معرفي كنيد. اين كار با كليك سمت راست بر روي گزينه Login در قسمت مذكور و سپس new login انجام ميگيرد. انتخاب يك نام كاربري به همراه ورود رمزعبور تنها كاري است كه بايد در اين جا انجام گيرد تا يك كاربر بهطور عمومي در ليست كاربران يك موتور پايگاده داده قرار گيرد.
از اين به بعد، وظيفه مدير سيستم تعيين دسترسي كاربران تعريف شده در قسمت security، به بانكهاي مختلف تعريف شده در پايگاه است.
اينكار نيز از دو طريق قابل انجام است. در روش اول، دسترسي به هر بانك اطلاعاتي از طريق همان قسمت security صورت ميگيرد. كافي است بر روي هر كاربري كه در اين قسمت تعريف كردهايد، كليك سمت راست كرده و ابتدا گزينه خصوصيات و سپس زبانه DataBase Access را انتخاب كنيد. پس از آن ليستي از كليه بانكهاي اطلاعاتي موجود در پايگاه به شما نمايش داده ميشود كه بايد بانك موردنظر را انتخاب كرده و در ستون Permit كليك موردنظر را انجام دهيد. پس از اين كار
ميتوانيد يك نام نمايشي را براي نام كاربري مربوطه در ستون user تايپ كنيد. در اينجا به عنوان مثال امكان دسترسي كاربر mda را به بانك Northwind فراهم نموده و نام نمايشي <مهيار داعيالحق> براي آن انتخاب شده است (شكل 2). همانطور كه مشاهده ميكنيد اين كاربر بهطور خودكار در گروه كاربري عمومي (public) بانك مذكور قرار داده ميشود.
در روش دوم، به سراغ بانك اطلاعاتي موردنظر در ليست DataBases رفته و با كليك سمت راست بر روي عبارتusers، گزينه New User را انتخاب ميكنيم. حال در پنجره نمايش داده شده، بايد از درون ليست Login name، يكي از كاربراني را كه قبلاً در قسمت security تعريف كردهايم انتخاب كرده و نام نمايشي آن را هم در قسمت user name تايپ كنيد. در اينجا هم بهصورت خودكار، كاربر مذكور در گروه كاربري Public براي آن بانك اطلاعاتي قرار ميگيرد. (شكل 3)
نقشها (Roles)
درSQL Server، ميتوان چندين كاربر را در يك گروه كاربري قرار داد. وقتي يك گروه كاربري تعريف ميشود، دسترسي آن به قسمتهاي مختلف يك بانك اطلاعاتي و كليه عملياتي كه اعضاء آن گروه ميتوانند انجام دهند، توسط مدير سيستم تعيين ميگردد. از اين به بعد هرگاه كاربر جديدي به آن گروه اضافه شود، نيازي به تعريف مجدد سطوح دسترسي و عملياتي براي وي وجود ندارد و سطوح دسترسي به صورت خودكار از طرف گروه به عضو جديد اعطا ميشود. درSQL Server بهصورت پيشفرض تعدادي نقش (Role) وجود دارد كه در واقع همان گروههاي كاربري مذكور ميباشد. هر كاربري كه توسط مدير سيستم به جمع كاربران اضافه ميشود به طور خودكار در نقش public ظاهر ميشود. نقشهاي از پيش تعريف شده و نحوه دسترسي و قابليت عملياتي آنها عبارت هستند از:
1- db-accessadmin
كاربران تعريف شده در اين نقش قادر خواهند بود، سطوح دسترسي و امنيتي كليه كاربران و نقشها را در قسمتهاي مختلف پايگاه تعريف كنند.
2- db-backupoperator
اين نقش مسؤول ايجاد نسخههاي پشتيبان از سيستم و اطلاعات درون آن است.
3- db-datareader
اين نقش قادر است كليه اطلاعات تمام جداول بانك اطلاعاتي موجود در سيستم را بخواند. مگر آنكه اطلاعات خاصي توسط مكانيسم Deny از دسترس او دور نگاه داشته شود.
4- db-datawriter
افراد تعريف شده در اين نقش قادرند تا كليه اطلاعات موجود در كليه جداول بانك را با استفاده از دستورات سهگانهInsert ،UPdate ،Delete تغيير دهند. مگر آن كه جدول يا فيلد خاصي توسط مكانيسم Deny از دسترسشان دور نگه داشته شود.
5- db-ddladmin
كاربران داراي اين نقش ميتوانند ساختار جداول، ديدها، روتينها و توابع يك بانك اطلاعاتي را با استفاده از دستورات سهگانه Create ،alter ،Drop، بسازند، تغيير دهند يا از بين ببرند.
6- db-denydatareader
اين نقش قادر به خواندن هيچ اطلاعاتي از جداول يا ساير قسمتهاي بانك نيست.
7- db-denydatawriter
اين نقش هم قادر به تغيير دادن هيچ يك از قسمتهاي بانك اطلاعاتي نيست.
8- db-owner
اين نقش قادر به انجام هر عملي در بانكاطلاعاتي ميباشد و بالاترين سطح موجود در يك بانك است.
9- db-securityadmin
مسؤول تعريف و تنظيم نقشها، كاربران و سطوح دسترسي در يك بانك است.
10- public
كاربران اين نقش قادرند تمام جداول، ديدها و ساير قسمتهايي كه توسط خودشان يا توسط كاربران متعلق به نقش dbowner ساخته شده را بخوانند و بنويسند.
اما به غير از نقشهاي مذكور، مدير سيستم هم ميتواند به تناسب، نقشهايي را در سيستم تعريف كند. به عنوان مثال فرض كنيد كه در يك واحد حسابداري، كارمندان عادي آن قسمت، موظف به وارد كردن اسناد مالي به يكي از جداول بانكاطلاعاتي با استفاده از يك برنامه ويژوال بيسيك هستند. مدير مالي نيز توسط دكمه موجود در همان برنامه قادر است يك روتين ذخيره شده (stored procedure) را فراخواني كرده تا اسناد وارد شده را تأييد كند. بنابراين فقط كاربر مربوط به مدير مالي حق اجراي روتين مذكور را دارد. برهمين اصل مدير پايگاه يك گروه به نام <حسابداران> را براي ورود اسناد و گروه ديگري را به نام <مدير مالي> براي مديريت آن دپارتمان و جانشينان احتمالي وي در نظر ميگيرد و براي گروه اول، اجراي روتين مذكور را در حالت ممنوع (Deny) و براي گروه دوم، در حالت مجاز (Allow) قرار ميدهد. شما ميتوانيد براي تعريف يك گروه يا نقش جديد، بر روي آيتم Roles كليك سمت راست كرده و گزينه New Role و سپس يك نام دلخواه را انتخاب كرده و آنگاه با كليك بر روي دكمه Add كاربران از قبل تعريف شدهتان را يك به يك به جمع آن گروه اضافه نماييد. شايان ذكر است كه هر كاربر ميتواند جزء چند گروه يا نقش باشد. در ادامه بايد در همان پنجره مذكور با كليك بر روي دكمه مجوز (Permission)، دسترسي و قابليت عملياتي آن گروه را هم تعريف كنيد. (شكل 4)