数据权限管理
1. 概述
本产品支持对角色设置数据访问权限,权限控制粒度可达到行和列级别。接下来将通过具体的示例来介绍如何设置行级权限及列级权限。
2. 行权限
当需要限制某些字段的查看范围时,您可以设置行级权限,缩小字段值的可见范围。例如当我们希望东北大区的销售人员只能看到“东北”地区的数据,我们可以建立一个“数据行级权限”,然后设置数据访问权限,只允许该角色成员访问“东北”地区的数据,然后将该“数据行级权限”赋予东北大区的销售人员即可。
下面我们将分步骤介绍操作方法:
2.1 创建
(1)点击数据权限管理页面的➕按钮可添加权限;
(2)设置权限名称,添加描述及确认存储位置;
(3)数据权限创建完成后,点击“编辑权限”按钮,进入到数据权限的编辑页面。
(4)支持配置单独对部分填报生效
原数据权限管理-资源tab下的报告旁新增了【数据填报】tab
数据升级策略: 在报告资源和数据填报资源中,所有资源不勾选,就代表全部不生效,可以单独选定个别资源;所有资源勾选代表全选,默认为全部勾选
2.2 配置
在数据权限的编辑页面,选择行权限,进入配置页面;
2.2.1 数据连接
点击后可选择某一数据连接进行设置,下图出于演示需要选择了默认数据;
2.2.2 权限规则
设置多个字段时,权限与权限之间可以选择AND,满足字段1和字段2;选择OR,满足字段1或字段2。
例如:在权限字段中,首先选择订单表—地区—东北,其次选择订单表—类别—B
权限规则AND指设置的这两个字段同时满足。赋予到用户身上时,在下方的订单表中,用户只能看到第3行数据,东北—黑龙江—B—200
OR指这两个权限满足一个就行,这时赋予到用户身上,他能看到2、3、4行的数据。
2.2.3 设置方式
支持固定值、动态值和组织架构三种方式设置。
(1)固定值
设置方式选择【固定值】时,可通过【添加列表筛选】或【添加树状筛选】设置不让用户查看的字段。
例1:添加列表筛选中【选择表】中选择“订单”,【选择字段】中选择“订单”下“地区”字段,【选择数据项】可手动输入“东北”或列表筛选勾选“东北”,将该“数据行级权限”赋予给东北大区的销售人员,则他们在访问相关报告时,只会看到“东北”地区的数据。
例2:树状筛选器可选择多个字段,当我们的数据筛选条件比较复杂,涉及多个层级的筛选时(比如要筛选“东北”地区和“杭州”的数据),这时候可以使用树状筛选来实现。
数据项中展示所选字段下的所有数据项,左侧可进行选择,右侧显示已选择内容,添加的筛选条件会显示在窗口中,确定后即可生效。
(2)动态值
设置方式选择【动态值】时,可以通过用户属性为用户设置灵活的应用场景,下文会做详细案例介绍。
(3)组织架构
当组织成员较多时,使用【组织架构】可以实现一次性为所有用户授权,降低成本和复杂度,方便后续管理。该方式以组织架构作为配置权限的依据,只有当数据表中的字段数值与用户所在的部门名称一致时才能看到对应数据。下文会做详细案例介绍。
(4)设置好以上权限后,保存权限设置。然后可在右侧添加成员,支持添加用户组或部门,则该成员即受该权限的限制;
2.3 动态值行权限案例
根据用户属性来进行数据行级权限管控。用户属性设置路径:企业域管理-人员信息-属性列表-设置一个属性值地区,在对应用户后输入东北或其他地区。
假设公司在“东北、华北、华东、华南”四个大区都有销售人员,我们希望不同大区的销售访问同一张报告时候只能看到自己所属大区的数据,用“数据行级权限”可以实现这样的需求,创建4个“数据行级权限”,每个“数据行级权限”只能访问一个大区的数据,然后给不同大区的销售人员分配对应的“数据行级权限”。
上述方法,当公司存在多少个大区,我们就需要创建对应数量的“数据行级权限”。那么有没有更简便的方法呢?可以借助用户属性来实现。
(1)将设置方式设置为“动态值”,然后选择要设置权限的表、字段和要匹配的用户属性。
(2)保存后,将该“数据行级权限”分配给所有用户,则每个用户访问报告时会根据该用户所在大区来筛选数据,只能看到自己大区的数据。
(3)配置好后,行级权限中,属性一栏只用输入地区,添加行级权限时会针对用户的属性来展示他能看到的数据权限,这时这条数据权限可以赋予到多个用户身上。
(4)行权限配置中的动态属性配置支持运算符:等于、不等于、存在、不存在
(5)支持设置当属性值为空时条件判定为True
- 关闭开关时,忽略用户属性为空的单条判断,不进入后续判定;
- 开启开关时,用户属性为空的单条判断直接判定为True;
- 如A用户的用户属性【部门】为空,设定单条判断“【订单】表【地区】字段等于【部门】”,若开关关闭,则忽略该单条判断,否则则判定为True
2.4 组织架构行权限案例一
假设公司在哈尔滨市有销售人员,东北大区的管理人员能够看到下辖城市的业绩情况;即城市级的员工只能看到本市的数据,大区级的员工能够看到下辖城市的数据,以此类推。
前置操作:设置好组织架构树
(1)需要事先设置好组织架构树,设置路径:平台管理(或企业域管理)-组织架构-新建部门。
(2)需要注意的是,部门名称及层级不能出错,否则会导致字段无法匹配。为了方便演示,这里先创建了名称为“中国”、“东北”、“哈尔滨”三个层级部门。
前置条件:数据表中需有包含部门名称的层级关系字段或者码值
下图是一张订单表,包含了“国家”对于、“地区”、“城市”三个字段,且具有层级关系,所以这张表是可以与组织架构树匹配行权限的。即:
- “国家”对于“中国”
- “地区”对于“东北”
- “城市”对于“哈尔滨”
关联:将组织层级与数据字段匹配
将行权限设置方式设置为“组织架构”,将组织层级与数据字段匹配;“部门直属成员拥有下级部门数据权限”勾选后,即可实现大区级的员工能够看到下辖城市的数据
2.5 组织架构行权限案例二
在实际业务数据库中,数据表中通常没有层级关系字段,只有一串代表门店/部门的id字段,如下图所示:
这时可以使用维表功能实现平替,使用该功能需升级到V8.11及以上版本。具体步骤:
(1)将业务表中的码值(机构编码)字段与维表关联,然后从主数据表中读取(或手动输入)层级关系,码值在哪一级就读取到那一级;下图的码值实际为城市id,则维表只需创建/读取到城市级;
(2)行权限的添加方式选择“添加维表”,选择绑定过目标字段的维表后逐级匹配;
(3)保存后完成即可实现与案例一的相同效果。
3. 列权限
当某些字段值不能透传给用户时,您可以通过设置禁止查看来隐藏目标字段。在报告查询字段时,该用户仅可以查看规则范围内的字段值,从而保证数据安全。数据列级权限的创建、配置和行级权限基本一致,但列权限仅支持固定值的设置。下面将直接介绍配置流程:
3.1 配置
(1)在列权限设置界面,选择需要设置访问权限的数据连接和权限字段所在表;
(2)选择要设置列权限的字段,勾选的字段为没有查看权限的字段;
(3)设置好以上权限后,保存权限设置。然后可在右侧添加成员,则该成员即受该权限的限制;
3.2 应用效果
(1)对于没有列权限的数据,用户所查看的报告若包含改字段的数据,则数据均作隐藏处理,如下表所示:
(2)针对整个报告,允许在报告设置入口勾选“不区分数据权限”(默认不勾选),勾选后则该报告下的所有报表、控件均不受数据行级&列级权限影响;
(3)若报告已设置不受数据权限影响,则针对单图表的数据权限设置置灰不可选,hover时也有相应提示。
4. 表权限
数据表权限的创建流程和上文行级权限的基本一致,这里不再赘述。下面将直接介绍配置流程:
4.1 配置
(1)在表权限设置界面,选择需要设置访问权限的数据连接,不支持内置连接;
(2)选择要设置权限的表
如果选择的数据连接类型为excel,则直接选择要设置权限的表
如果选择的数据链接为sql、oracle、vertica等,则先选择数据库再选择要设置权限的表
(3)设置好以上权限后,点击下方保存按钮即完成权限设置。
4.2 应用效果
表权限应用之后,用户只能查看、选择和使用有权限的表;没权限的用户将无法在模型,数据准备等应用中使用该表。
数据模型中只能选择有权限的数据库数据表
数据连接中只能查看有权限的数据库数据表
自定义sql取数只能展示和使用有权限的数据库数据表
5. 填报权限
用户在填报的数据管理页面仅能看到自己有权限的填报内容。
- 表权限:用户仅能看到对应的表
- 记录权限:分为个人提交和指定记录,用户仅能看到对应的数据记录
- 多个填报权限之间取并集,即用户可以看到多个数据权限指定的内容
6. 资源范围
数据权限支持设置只应用到部分报告或数据填报,适用于用户仅在指定资源有权限的场景。
在编辑状态下,勾选“所有资源”表示所有资源受到本权限影响,包括已有和未来新增的所有资源。
以上内容对您是否有帮助?