فرض کنید که ما در SQL Server جدولی داریم که در آن اطلاعات تامین کنندگان و سفارشات قرار دارد. این اطلاعات برای کسب و کار ما اهمیت فراوانی دارند و می خواهیم دسترسی برخی از کارمندان را به این اطلاعات محدود کنیم. می خواهیم هر یک از کارمندان بتوانند فقط سفارشات ثبت شده توسط خودشان را بر اساس کد کارمندی شان مشاهده کنند. برای این کار SQL Server 2016 دارای ویژگی های جدیدی است.
[sql] CREATE TABLE dbo.Orders SELECT * FROM dbo.Orders |


[sql] CREATE FUNCTION dbo.fn_securitypredicateOrder (@processedby sysname) |
[sql] CREATE SECURITY POLICY dbo.fn_security |
[sql] CREATE USER LAX WITHOUT LOGIN GRANT SELECT ON dbo.Orders TO LAX |
[sql] EXECUTE (‘SELECT * FROM dbo.Orders’) AS USER=’LAX’ |


[sql] GRANT SHOWPLAN TO ZAP EXECUTE (‘SELECT * FROM dbo.Orders’) AS USER=’ZAP’ |


[sql] SELECT * FROM dbo.orders WHERE processedby=USER_NAME() |


[sql] ALTER SECURITY POLICY fn_security WITH (STATE=OFF) |
[sql] DROP SECURITY POLICY fn_security |
[sql] CREATE FUNCTION dbo.fn_securitypredicateOrder (@processedby sysname,@Orderdate datetime) CREATE SECURITY POLICY dbo.fn_security |


9 دیدگاه
مجتبی شهریور
سلام
مقالتون بسیار عالی کاربردی و آموزنده بود …
فرشید علی اکبری
سلام
مسعود طاهری
سلام
محمد رحیمی
سلام
واقعا استفاده کردم.
مهدی ربانی ذبیحی
سلام بسیار عالی کاربردی بود با تشکر
غلامحسین عبادی
با سلام و عرض ادب
ممنون از زحمات شما دوست عزیز . مطلب بسیار خوبی را ارائه دادید سپاسگزارم .
یه خواهش از استاد مسعودی
ممکنه یه مقاله راجع به این که میخواهیم ببینیم که چه کسانی در کل یک شرکت بر روی دستگاه خود SQL Server نصب کرده اند .
در ضمن اگر ممکن است یک لیک مربوط به ذخیره مطالب را قرار دهید .
محسن فرید
سلام من یه سایت دارم می خوام بزارم رو سرور خودشون من چه جوری کاری کنم چون تو وب کانفیگ یوزر و پسورد هست به اس کی یو ال دسترسی نداشته باشن
مسعود طاهری
سلام
داوود طاهرخانی
عالی و مفید بود ممنون مهندس