数据行列权限
1. 概述
数据行列权限,是观远BI提供的针对行列级别的权限控制,通过给数据集配置行列权限,可以给不同的关联用户/用户组设置不可见的字段或字段值,满足个性化的数据安全保障。
2. 使用说明
2.1 数据权限入口
点击数据中心-数据集,进入某个数据集详情页,点击“数据安全-行列权限”可对行列权限进行编辑。
2.2 管理员和数据集所有者的行列权限
针对管理员和数据集所有者,有开关可以控制其是否受行列权限影响,企业可以根据需求进行设置。
当管理员和数据集所有者被包括在行列权限的适用对象里,若开关关闭,则无论上面的行列权限如何规定了数据权限,管理员和数据集所有者都可以看到所有数据。
若开关开启,则管理员和数据集所有者也要受上面的行列权限限制,只能看到行列权限规定内的数据。
2.3 数据集行列权限的自定义函数设置
观远数据支持用户自定义函数进行统一权限管理,从而有效的提升用户管控能力。
注意:行列权限和用户的关联关系,及相关审批审核工作由第三方系统实现。
1.在环境主域中,打开system-backend系统运维页面,打开自定义域函数。
2.点击新增或者编辑自定义函数,选定一个域,输入函数名称,调用的接口名称,选择接口请求方式,配置超时时长(默认2s),函数中的参数,可以列出用法、说明和示例,将在函数列表说明处展示,可选定义安全验证码,用于接口的身份验证。
3.创建好的函数将在行列权限-编辑行权限-自由模式时可用。
3. 数据权限设置
在数据集详情页的“数据安全-行列权限”界面,作为所有者,您可以设置是否启动列权限和行权限,并针对不同的关联用户/用户组设置不可见的字段。为了方便快速进行数据权限控制,您可以选择《数据安全模板》。设计好的行列权限,还可以设置是否对该数据集所有者和管理员生效。
3.1 列权限设置
列权限设置决定用户不能看哪些字段信息,比如普通人员不能看成本价信息。
3.1.1 列权限设置步骤
第一步,点击列权限设置的“新增”按钮,或者点击某条已添加列权限的“编辑”按钮,都可以进入“列权限编辑器”。
第二步,填写新增列权限的空白编辑页面,需要填写的信息包括:
列权限的对象:选择关联用户或用户组。
列权限内容:不允许选择的对象查看哪些内容。
列权限的备注信息:方便后期快速了解列权限。
第三步,当创建了列权限后,如果启用开关未打开,则列权限不生效;打开后,列权限开始生效。
3.1.2 列权限设置效果示例
某公司销售员A的账号,列权限未开启前,可以看到所有信息。
开启上述举例的列权限后,销售员A无法看到成本价信息。
3.1.3 特殊情况说明
当用户在不同用户组,且不同用户组的列权限不一致时,该用户看不到的数据是两个用户组看不到数据的交集部分。
例如,数据集有5个字段,用户所在的用户组A不能看字段1和字段2,所在的用户组B不能看字段2和字段3,则该用户不能看字段2,字段1和3都能看到。
3.2 行权限设置
行权限设置决定用户可以看每个字段下的哪些信息,比如华东的销售人员只能看华东的数据,不能看华北、华南等其他区域的数据。
3.2.1 行权限设置步骤
第一步,点击行权限设置的“新增”按钮,或者点击某条已添加行权限的“编辑”按钮,都可以进入行权限设置页面。
第二步,填写新增行权限的空白编辑页面,需要填写的信息包括:
行权限的对象:选择关联用户或用户组。
行权限内容:允许上一步选择的对象查看哪些行数据。
行权限的备注信息:方便后期快速了解或查找行权限。
行权限内容有2种编辑方式:条件模式和自由模式。
(1)条件模式,即可以通过现有字段和数值信息进行筛选。
如图所示,只允许华东销售组的成员,查看华东部分的数据,其他区域的数据不能查看。
对于不同类型字段,还可设置不同的条件类型,包括:选择、范围、条件和in(用户属性)。
选择:直接勾选或批量粘贴条件,该类型适用于文本字段,如省份、类别、名称等。
范围:选择需要的条件格式,如大于、小于、为空等,其中对于日期字段,还支持选择今天、昨天、最近7天等格式;该类型适用于数值字段,如零售价、销售量、日期等。
条件:选择需要的条件格式,如等于、包含、以...开始等,该类型适用于文本字段,如省份、类别、名称等。
in(用户属性):当字段包含某个用户属性时,可在右侧选择对应的属性;该类型适用于用户属性相关字段,如姓名、工号、部门等。
若我们希望每个销售人员只能看到自己的销售数据,则应设置条件为:系统中用户名称(用户基础属性)和数据里的销售员名称(字段)相同,如下图,选择“name”字段和“姓名”用户属性,完成后,用户可以看到对应销售员的数据(即自己的数据)。
可添加、修改、删除条件配置。
配置完成后,点击右上角“查询语句”按钮,可查看条件生成的SQL。
(2)自由模式,即通过SQL语句来进行筛选。
如图所示,同样只允许华东销售组的成员,查看华东部分的数据,其他区域的数据不能查看。自由模式可使用SQL语句 [大区]="华东" 来实现上文条件模式一样的条件选择。
再如图所示,若我们希望每个销售人员只能看到自己的销售数据,则设置条件为:系统中用户名称(用户基础属性)和数据里的销售员名称(字段)相同时,用户可以看到对应销售员的数据(即自己的数据)。
自由模式的用法非常丰富,适合各种复杂的自定义条件。若是直连数据集,请使用对应数据库类型语法,如MySQL数据库则使用MySQL语法;若是Guan-Index抽取数据集,请使用SparkSQL。
对关联对象设置指定可见数据后,对于其他用户可以看到哪些数据,有4种选项,企业可以根据自己的需求进行设置。
当创建了行权限后,若开关关闭,则行权限不生效;开关开启后,行权限开始生效。
3.2.2 效果示例
下图是行权限未开启前,可以看到销售人员A属于华东区,且他可以看到其他大区的数据。
举例1:行权限设置为“华东组销售只能看到华东区的数据”。
行权限开启后,销售人员A只能看到华东区的数据,原来华中、华南、东北、西南的数据都看不到了。
举例2:行权限设置为“销售员只能看到自己的数据”。
行权限开启后,销售人员A只能看到自己的数据,原来可以看到的其他人的数据都看不到了。
3.2.3 特殊情况说明
当用户在不同用户组,且不同用户组的行权限不一致时,该用户都可以看到两个用户组分别可以看到的数据。
例如,对于数据集的城市字段的数据,用户所在的用户组A可以看上海、杭州的数据,所在的用户组B可以看上海、北京的数据,则该用户可以看到上海、杭州、北京3个城市的数据。