一定于每一种用户连接进来只好看到澳门太陽城集团登录网址

Sql Server 二〇一五 有二个新成效叫 Row-Level Security
,大约意思是行版本的安全战术(原本笔者是个西班牙语渣_(:з」∠)_澳门太陽城集团登录网址,)

平素上例子。那一个效应相当通过对表增多三个函数作为过滤准绳,使得全体不相同规格的用户(只怕登陆名)
之类的,只好取获得符合条件的数目。相对来讲是提供了那么一些的便捷性,当然也大增了多少的安全性,相当于种种用户连接进来只好看到

澳门太阳集团城网址,切合准绳的数目(当然,这里的用户只是三个例如。其实是能够通过编写制定过滤函数来实现的)

举个例证

有四个用户 Sales1 ,Sales 2 ,Manager
3个数据库用户,然后用二个Sales的表来贮存他们的订单记录

CREATE TABLE Sales  
    (  
    OrderID int,  
    SalesRep sysname,  
    Product varchar(10),  
    Qty int  
    );  


INSERT Sales VALUES   
(1, 'Sales1', 'Valve', 5),   
(2, 'Sales1', 'Wheel', 2),   
(3, 'Sales1', 'Valve', 4),  
(4, 'Sales2', 'Bracket', 2),   
(5, 'Sales2', 'Wheel', 5),   
(6, 'Sales2', 'Seat', 5);  
-- View the 6 rows in the table  
SELECT * FROM Sales;  
go

澳门太陽城集团登录网址 1那是任何表的多寡的截图

接下来增添3个用户,分别正是Sales1 Sales2 Manager
3个用户,分别对他们的赋予Sales表的询问和删除(用于测量试验删除功能) 的权限。

CREATE USER Manager WITHOUT LOGIN;  
CREATE USER Sales1 WITHOUT LOGIN;  
CREATE USER Sales2 WITHOUT LOGIN;

GRANT SELECT,delete ON Sales TO Manager;  
GRANT SELECT,delete ON Sales TO Sales1;  
GRANT SELECT,delete ON Sales TO Sales2; 

 

 

接下来以下是其一效能的骨干部分。首先大家创造二个过滤函数,然后将以此过滤函数加多到那么些表的安全计策里面,就能够看到效果了。

一定于每一种用户连接进来只好看到澳门太陽城集团登录网址。函数逻辑很简短,传入一个@SalesRep 的名号,用于相配当前的
User_一定于每一种用户连接进来只好看到澳门太陽城集团登录网址。一定于每一种用户连接进来只好看到澳门太陽城集团登录网址。Name。匹配了才回来数据

一定于每一种用户连接进来只好看到澳门太陽城集团登录网址。接下来上边一行是创造了多少个安全攻略,何况在Sales 的表里面使用函数
fn_securitypredicate 作为表的筛选器。传入函数的参数选定为 SalesRep
字段(也正是大家建表的不行贩卖代表字段了)

CREATE FUNCTION fn_securitypredicate(@SalesRep AS sysname)  
    RETURNS TABLE  
WITH SCHEMABINDING  
AS  
    RETURN SELECT 1 AS fn_securitypredicate_result   
WHERE @SalesRep = USER_NAME() OR USER_NAME() = 'Manager';  

CREATE SECURITY POLICY SalesFilter  
ADD FILTER PREDICATE dbo.fn_securitypredicate(SalesRep)   
ON dbo.Sales  
WITH (STATE = ON);  

 

一定于每一种用户连接进来只好看到澳门太陽城集团登录网址。 

接下来大家看下查询的结果

EXECUTE AS USER = 'Sales1';  
SELECT * FROM Sales;   

REVERT;  

EXECUTE AS USER = 'Sales2';  
SELECT * FROM Sales;   
REVERT;  

EXECUTE AS USER = 'Manager';  
SELECT * FROM Sales;   
REVERT;  

 

澳门太陽城集团登录网址 2

 效果就是这么,当然借使是要设置区别的过滤条件,设置区别的字段的时候,是足以由此上文的函数里面包车型大巴代码和安全战术实行安装的。依据这么些过滤意况,固然登陆用户非Sales1
Sales2 Manager 3个里面之一,是什么样都询问不了的。

除此以外,用户不可能删除被过滤的数量。举例说 Sales1 不可能去除或修改OrderID = 3
的数目。

帕杰罗LS的产出也是能帮忙大家缓慢解决一定功能方面包车型大巴落到实处的~

大概的躬体力行了瞬间那一个瑞鹰LS的作用~分享得非常不够好的地点烦请大家拍砖.

 

You may also like...

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图