PDA

View Full Version : سوال: advanced permission



movahed abtahi
دوشنبه 17 خرداد 1389, 18:36 عصر
سلام
می خواستم بدونم اصلا مجوزهایی به غیر از مجوز های موجود در sql server managment studio برای rolها یا userها و ... اعمال کرد و اگر میشه آیا باید با کد نویسی این کار رو کرد یا با خود نرم افزار هم می تونیم؟
یا اینکه می تونیم مثلا مجوز مربوط به select را با جزییات بیشتری اعمال کنیم؟

AminSobati
دوشنبه 17 خرداد 1389, 22:17 عصر
سلام دوست عزیزم،
سوالتون خیلی واضح نیست. در حدی که متوجه شدم پاسخم این هست که دستور Select رو میشه تا Column دقیقش کرد. ضمنا دادن یا گرفتن هر مجوزی، از طریق کد نویسی هم امکان پذیر هست

movahed abtahi
سه شنبه 18 خرداد 1389, 09:27 صبح
سلام و ممنون از پاسختون
من این سوال رو یکبار دیگه هم گذاشتم ولی متاسفانه کسی بهش جواب نداد یکبار دیگه منویسمش
****************************
من سوالم رو با یه مثال طرح میکنم.
فرض کنید در پایگاه داده جدولی به نام جدول حقوق داریم می خواهیم توسط تنظیمات مجوزها در sql server 2008 تعیین کنیم که مثلا کاربر A حق دستور select را داشته باشد ولی در صورت اجرای این دستور فقط لیست کارمندانی برای کاربر A به نمایش درآید که حقوق کمتر 500 هزار تومان دریافت می کنند.یعنی در واقع بر روی اجرای دستوراتی مثل select یا update یا مثل اینها برای افراد یا role های خاصی یک سری محدودیت اعمال کنیم .

آیا انجام این کارامکان داره و اگر امکان پذیره چگونه؟

اگر امکان داره همون دقیق کردن مجوزها تا روی ستون ها رو هم بیشتر برام توضیح بدین.

متشکرم

movahed abtahi
پنج شنبه 20 خرداد 1389, 10:01 صبح
وقتی در properties یک user وارد قسمت securables میشوم قسمت ... column permission غیر فعال است . چه جوری می تونم فعالش کنم؟

AminSobati
پنج شنبه 20 خرداد 1389, 22:20 عصر
در حقیقت چیزی که شما نیاز دارین Row-Based Security هستش. میتونین یک سری Inline Table Valued Function بنویسید تا با پاس کردن مقادیر، رکوردها رو فیلتر کنه و نمایش بده. مثلا چیزی شبیه به این:



create function fn1(@x nvarchar(20))
returns table
as
return
select * from customers where country=@x
go

select * from fn1('germany')

select * from fn1('germany') c join orders o
on c.customerid=o.CustomerID


ضمنا Column Permission زمانی فعال میشه که در لیست شما روی select یا update قرار گرفته باشین

movahed abtahi
جمعه 21 خرداد 1389, 10:44 صبح
ممنون از پاسختون .فکر می کنم این همان چیزی بود که من می خواستم :لبخندساده:
البته خودم هم یه راهی پیدا کردم که فکر می کنم خیلی خوب باشه وقتی مطمئن شدم که جواب میده توی سایت قرار میدم.