PDA

View Full Version : یه سوال در مورد role



متین جان
جمعه 31 شهریور 1385, 18:49 عصر
با سلام
یه سوال در مورد role در اس کیو ال سرور دارم .
با role میشه سطح دسترسی یوزر به بعضی از رکورد های یه جدول را محدود کرد
یعنی
من می خوام هر یوزر با توجه به نقش خودش فقط روی یه سری از رکورد هایی که حق دسترسی به اون رو داره عملیات انجام بده .
البته من این کار رو با طراحی n تا جدول انجام دادم ولی دلم می خواد ساده تر باشه
ممنون:متفکر:

متین جان
شنبه 01 مهر 1385, 10:05 صبح
لطفا یکی جواب منو بده

h_baqery
شنبه 01 مهر 1385, 10:16 صبح
تا جایی که من می دونم این کار با استفاده از View فقط امکان پزیره .

linux
شنبه 01 مهر 1385, 17:51 عصر
این که خیلی راحت هست یک رول ایجاد کن تمامی پرمیشنهایی که لازم داره را بهش بهده حالا یک یوزر ایجاد کن و به این رول نسبت بده

متین جان
جمعه 07 مهر 1385, 22:17 عصر
Linux عزیز
با این روش ، محدودیت روی select,update, ... انجام می شه
چطوری روی رکورد هایی که یه سری ویژگی های خاصی دارند می شه محدودیت گذاشت ؟
با تشکر

AminSobati
جمعه 07 مهر 1385, 23:21 عصر
در SQL Server شما از Permissionهای موجود میتونین تا حد فیلد اختیاراتی رو تعیین کنین. اما Row Based Security به شکل دیگه ای کنترل میشه. مثلا در یک فیلد باید نام ثبت کننده رکورد رو ذخیره کنید تا بتونین موقع Select، رکوردهای مربوط به همون کاربر رو بدست بیارین. البته Row Based Security راه حلهای مختلفی داره مثلا:
http://www.microsoft.com/technet/prodtechnol/sql/2005/multisec.mspx
ولی کلا در یک نرم افزار، استفاده از امکانات امنیتی خود SQL Server توصیه نمیشه چون نیازهای شما نمیتونن دقیقا Map بشن به قابلیتهای SQL Server. نیازهای ما بسیار متنوع تر و سفارشی تر هستند. اینجاست که Hand-Roled Security مطرح میشه. مثلا شما اجازه استفاده از قلم نوری در یک نرم افزار دبیرخانه رو نمیتونین ارتباط بدین به یک مفهوم در SQL Server. در چنین مواقعی میشه مثلا جدولی در نظر گرفت که هر فیلد اون نشان دهنده یک Permission دلخواه هستش و هر کاربر در این جدول صاحب یک رکورد میشه. این فیلدها مقدار 0 و 1 دارند و نشون میدن آیا این کاربر فلان اختیار رو داره یا نه...
اما این به مفهوم ناکارآمد بودن امکانات Security در SQL Server نیست. چرا که امکاناتش در جای خود بسیار ضروری و مهم هستند ولی مورد شما فرق داره...