SQL Server ->> Row-Level Security

SQL Server 2016 CPT3中包含了一个新特性叫Row Level Security(RLS),允许数据库管理员根据业务需要依据客户端执行脚本的一些特性控制客户端能够访问的数据行,比如,我们希望业务部的经理只能查看他所在部门的员工的薪资情况。以往像要实现这样的功能,都是要通过视图里层的逻辑编写来实现。以前某个项目就是这么实现的。或者通过在应用程序层去实现,比如在提交命令到数据库前,通过在查询语句中添加WHERE字句条件来实现数据过滤。这样显然RLS是更加简便的去实现行级别权限控制。

 

那么它是怎么实现的呢?结合SECURITY POLICY和内联函数

1)SECURITY POLICY作用于表,指明PREDICATE类型以及PREDICATE的参数传入;

2)PREDICATE的定义在内联函数里面;

 

RSL支持两种类型的PREDICATE

 

 

 

参考:

Row-Level Security

你可能感兴趣的:(SQL Server ->> Row-Level Security)