dorparasti
پنج شنبه 10 شهریور 1390, 21:41 عصر
در مطال مختلفی که در وب خوندم درباره امنیت وب سایت ، یکی از مطالب که مورد تاکید بوده استفاده از یک اتصال به دیتابیس با دسترسی محدود است مثلاً تنها به جداول و پروسیجورهای تعیین شده دسترسی داشته باشد و در آن جداول هم فقط اجازه select ,delete , update و insert را داشته باشد نه create table و این چیزها .
در فروم گشتم ولی مطلب مناسبی پیدا نکردم .
حالا من :
- اول یک Login ساختم
- بعد در دیتابیس یک user ساختم که default schema اون dbo هستش و تنها Role آن public هستش
- رفتم به صفحه securable و جداول و procedure های مرتبط به dbo رو لود کردم .
- به پروسیجورها به اونهایی که خودم ساخته بودم از بین 5 گزینه موجود همه رو deny زدم بجز execute و برای اونایی که اولشون sys داشت و من نساخته بودم همه گزینه ها رو deny کردم .
- برای جداول هم اونایی که خودم ساخته بودم همه گزینه ها رو deny کردم به جز select و Delete و update و insert که grant کردم و جداولی که ساخت خود دیتابیس بود همه رو deny کردم .
آخرش هم ok رو زدم و از طریق سایت سعی کردم اون رو امتحان کنم . اما پیغام زیر رو داد :
The SELECT permission was denied on the object 'tablename', database 'db', schema 'dbo'.
دوباره رفتم به دیتابیس و قسمت securables و به جدولی که ایراد گرفته بود علاوه بر چهار عمل قبلی ، گزینه Control هم از حالت deny خارج کردم و grant رو تیک زدم و بعد اون error رو نداد و رفت به error روی جدول بعدی یعنی درست شد .
حالا این گزینه Control چیه ؟ من کجا اشتباه کردم و روش درست برای یک اتصال محدود و امن چیه ...
بازم بگم که هم اینجا و هم در فروم sql server گشتم اما چیزی پیدا نکردم . اگر کسی مطلبی میشناسه معرفی کنه ...
ممنون
در فروم گشتم ولی مطلب مناسبی پیدا نکردم .
حالا من :
- اول یک Login ساختم
- بعد در دیتابیس یک user ساختم که default schema اون dbo هستش و تنها Role آن public هستش
- رفتم به صفحه securable و جداول و procedure های مرتبط به dbo رو لود کردم .
- به پروسیجورها به اونهایی که خودم ساخته بودم از بین 5 گزینه موجود همه رو deny زدم بجز execute و برای اونایی که اولشون sys داشت و من نساخته بودم همه گزینه ها رو deny کردم .
- برای جداول هم اونایی که خودم ساخته بودم همه گزینه ها رو deny کردم به جز select و Delete و update و insert که grant کردم و جداولی که ساخت خود دیتابیس بود همه رو deny کردم .
آخرش هم ok رو زدم و از طریق سایت سعی کردم اون رو امتحان کنم . اما پیغام زیر رو داد :
The SELECT permission was denied on the object 'tablename', database 'db', schema 'dbo'.
دوباره رفتم به دیتابیس و قسمت securables و به جدولی که ایراد گرفته بود علاوه بر چهار عمل قبلی ، گزینه Control هم از حالت deny خارج کردم و grant رو تیک زدم و بعد اون error رو نداد و رفت به error روی جدول بعدی یعنی درست شد .
حالا این گزینه Control چیه ؟ من کجا اشتباه کردم و روش درست برای یک اتصال محدود و امن چیه ...
بازم بگم که هم اینجا و هم در فروم sql server گشتم اما چیزی پیدا نکردم . اگر کسی مطلبی میشناسه معرفی کنه ...
ممنون