امنیت در سطح ردیف ( RLS )
راهنمای جامع امنیت در سطح ردیف (Row-Level Security) در SQL Server
چکیده
در دنیای امروز، حفاظت از دادههای حساس به یک چالش اساسی تبدیل شده است. امنیت در سطح ردیف (RLS)یک قابلیت قدرتمند در SQL Server است که به شما امکان میدهد دسترسی به ردیفهای جدول را بر اساس عضویت در گروهها یا متن اجرا (execution context) کنترل کنید
مقدمه
تصور کنید در یک بیمارستان کار میکنید. پرستاران فقط باید به سوابق بیماران خود دسترسی داشته باشند، نه همه بیماران. یا در یک بانک، هر کارمند فقط باید به دادههای مشتریان واحد خود دسترسی داشته باشد. چگونه این محدودیتها را اعمال میکنید؟
RLS چیست؟
امنیت در سطح ردیف (RLS) قابلیتی است که اولین بار در SQL Server 2016 معرفی شد. این ویژگی به شما اجازه میدهد دسترسی به ردیفهای یک جدول را بر اساس ویژگیهای کاربر کنترل کنید.
به زبان ساده RLSفیلتر هوشمند که قبل از نمایش هر دادهای، بررسی میکند آیا کاربر مجاز به دیدن این ردیف خاص است یا خیر.

مثال کاربردی :
ایجاد کاربر :
REATE USER Manager WITHOUT LOGIN
CREATE USER User1 WITHOUT LOGIN
CREATE USER User2 WITHOUT LOGIN
GO
ایجاد اسکیما و جدول :
CREATE SCHEMA Sales ;
CREATE TABLE Sales.Orders
GO
مقدار دهی به جدول :
INSERT INTO Sales.Orders VALUES
اعطای دسترسی کاربران به جدول :
ایجاد تابع :
CREATE SCHEMA Security;
GO
CREATE FUNCTION Security.tvf_securitypredicate(@SalesRep AS nvarchar(50))
ایجاد سیاست امنیتی :
CREATE SECURITY POLICY SalesFilter
GO
اعطای دسترسی کاربران به تابع :
GRANT SELECT ON Security.tvf_securitypredicate TO Manager;
اجرای تستی به عنوان کاربر user1
EXECUTE AS USER = 'User1';
اجرای تستی به عنوان کاربر Manager
EXECUTE AS USER = 'Manager';
خروجی مورد انتظار:
- SalesRep1: فقط ردیفهای ۱، ۲، ۳ را میبیند
- SalesRep2: فقط ردیفهای ۴، ۵، ۶ را میبیند
- Manager: همه ۶ ردیف را میبیند
💬 نظرات (0)
هنوز نظری ثبت نشده است. اولین نفری باشید که نظر میدهید!
📝 ثبت نظر جدید