<< Click to Display Table of Contents >> 行权限复制链接 |
1.概述
1.1应用场景
对数据进行行权限控制的时候可以使用此功能进行数据按规则进行过滤。
1.2功能简介
设置行权限规则和应用范围,将规则应用给应用范围内的不同用户,实现不同的用户看到不同行的数据。
按用户配置好的数据权限表,按权限表的数据限制不同用户可访问哪些数据。
1)准备数据权限表,通过内嵌数据集“e”准备好。
2)在数据权限表“e”上添加行过滤,按用户显示不同的数据。
3)在需要设置行权限的数据集上,定义行权限。
点击“添加规则”,弹出“添加规则”窗口。在“编辑规则”窗口中,输入规则名称;选择应用范围,此例中选择admin_role和every_role的角色应用到所有用户;规则中点击添加条件,选择多源过滤,用省份字段过滤,使其等于数据集“e”的省份字段,并勾上“字段值为指定值时返回全部数据,指定为”,输入“全部”,这样当返回指定的数据“全部”时,此数据集能返回全部数据。
4)验证行权限结果
以admin查询数据,数据权限表省份返回“全部”,所以应用行权限之后,显示全部数据。
以fiona查询数据,看到省份为湖北和湖南的数据。
以fiona1查询数据,由于数据权限表查出来的省份数据为空,所以应用行权限之后看到空数据。
3. 功能说明
1)添加和编辑规则窗口说明
【名称】指定规则名称,规则之间不可以同名。
【应用范围】悬浮到文本框点击加号选择指定用户、组或角色。受属性view.user.strict控制,默认是false,显示系统内的所用用户、组和角色。如果设置成true,则只显示同组和子组的用户;所在组和子组;具有授权管理的用户可以显示:管理范围内的组所具有的角色、本用户自己创建的角色、本用户具有的角色、everyone_role、develop_role,如果没有授权管理权限,则不会显示任何角色。
【规则】添加过滤条件。
【过滤条件定义】支持同源和多源过滤条件设置,过滤条件设置参考过滤。其中多源过滤指定义字段等于另一个数据集的字段,参考本章的“应用举例”部分。
【字段值为指定值时返回全部数据】当为多源过滤;或过滤条件是其中一个、包含其中一个,并且是参数过滤的时候,可以勾选。勾选之后,可以指定当返回值是某个具体的值(比如全部、AllCondition等代表全部的值)的时候,应用此规则后返回全部数据。
【白名单】悬浮到文本框点击加号选择指定用户、组或角色。同“应用范围”一样受属性view.user.strict控制。添加到白名单里的用户、组、角色不应用此项规则。
2)规则列表说明
显示每个规则的信息,并支持编辑规则和删除规则操作。
3)【其它所有用户】:所有数据:不在应用范围里的用户,看到所有数据;空数据:不在应用范围里的用户看到空数据。默认为空数据。
4)【规则间关系】:下拉选项:且、或,规则与规则之间用and还是or。默认选择“或”。
5)行权限和行过滤的关系为and。
6)如果数据权限表查出来的数据为“空”数据时,也就是多源过滤或参数过滤时,返回的字段值或参数值为空时,返回空数据。参见本章应用举例里的fiona1用户查询数据。
7)数据模型需要选择具体的节点设置行权限;自服务数据集需要选择数据集结果节点设置行权限。
8)一个数据集上设置了行权限,将此数据集拖入自服务数据集或数据模型,行权限不再应用,需要重新设置行权限。也可以将一个数据集上的行权限进行负责,粘贴到另一个数据集上,或粘贴到数据模型的某个节点上。
复制行权限入口:
粘贴行权限入口:
自服务数据集等:
数据模型:
9)只有数据集的读权限,不能编辑或删除已经存在的行权限规则,不能添加新的规则。
4. 更多场景举例
示例一:用户1看到省份为湖北的数据;用户2看到省份为湖南的数据,其它所有人看到所有数据
【规则】:
规则1:应用范围:用户1,规则:省份 = 湖北;
规则2:应用范围:用户2,规则:省份 = 湖南;
【其它所有用户】:选择“所有数据”。
示例二:用户1看到省份为湖北的数据;用户2看到省份为湖南的数据,其它所有人看到空数据
【规则】:
规则1:应用范围:用户1,规则:省份 = 湖北;
规则2:应用范围:用户2,规则:省份 = 湖南;
【其它所有用户】:选择“空数据”。
示例三:用户1看到所有数据,其它所有用户看到湖北的
【规则】
规则1:应用范围:everyone_role,规则: 省份=湖北,白名单:用户1
【其它所有用户】:所有数据
示例四:组1看到湖北的;组2看到湖南的,用户1既属于组1又属于组2
【规则】
规则1:应用范围:组1,规则:省份 = 湖北;
规则2:应用范围:组2,规则:省份 = 湖南;
【规则间关系】如果设置为且,用户1则啥也看不到;如果设置为或,则用户1既能看到湖北的又能看到湖南的。
示例五:过滤条件值来自于权限表的数据值
参考本章的应用举例,用多源过滤使数据值来自于另一个数据集的字段值。或用参数过滤,条件选择其中一个,编辑参数里将参数值设置为动态值来自于另一个数据集的字段值。
5. 行过滤和行权限的区别
抽取和学习数据时,应用行过滤,不应用行权限。这样定义在行权限的规则,即使抽取或学习数据之后,也能按规则执行,不同的用户看到不同权限的数据。