1. 概述
1.1 版本
FineBI服务器版本 |
---|
5.1 |
1.2 问题描述
管理员可以通过设置行列权限来实现不同用户查看不同的数据,但若同时对部门、角色、用户都设置了行列权限,或者使用了关联关系等复杂的设置,可能会达不到预期结果。
1.3 解决思路
本文来说明行列权限的一些特殊场景。
2. 设置数据表行权限
2.1 部门、角色、用户同时设置行权限后取「或」关系
2.1.1 权限设置
例:用户 Alice 既是开发部部长,又是技术支持部长,同时属于普通角色,则在这四者(开发部部长、技术支持部长、普通角色、用户 Alice)上设置数据表的权限。
1)为Alice设置部门行权限,开发部部长设置「零售行业>品牌维度表」中的「品牌描述」字段属于「ZIPPO(之宝)」,如下图所示:
2)技术支持部长设置「零售行业>品牌维度表」中的「品牌描述」字段属于「新百伦」。如下图所示:
3)为 Alice 设置角色行权限,普通角色设置「零售行业>品牌维度表」中的「品牌描述」字段属于「HANG TEN」。如下图所示:
4)为 Alice 设置用户行权限,用户 Alice 设置「零售行业>品牌维度表」中的「品牌描述」属于「十月妈咪」。如下图所示:
2.1.2 效果查看
Alice 账号登录FineBI系统,最终结果是四个行权限条件取「或」关系,如下图所示:
注:若为用户单独设置过使用/管理/授权权限,在设置权限后会出现黄色的人像标志。此时若需要恢复对部门/角色权限的继承,需要点击恢复继承权限按钮。弹出提示框「确定清除该用户关于数据权限的单独权限设置,恢复对部门/角色权限的继承」,点击确定即可。如下图所示:
2.2 部门、角色、用户部分设置行权限后对配置的行权限取「或」
2.2.1 权限设置
例:用户 Alice 既是开发部部长,又是普通角色,则在这三者(开发部部长、普通角色、用户 Alice )上设置数据表的行权限。
注:部分设置行权限。
1)为 Alice 设置部门权限,开发部部长设置「零售行业>品牌维度表」中的「品牌描述」字段属于「ZIPPO(之宝)」,如下图所示:
2)为 Alice 设置角色权限,普通角色设置「零售行业>品牌维度表」中的「品牌描述」字段属于「HANG TEN」。如下图所示:
3)为 Alice 设置用户权限,用户 Alice 设置「品牌维度表」的使用权限,不设置行权限。如下图所示:
注:抽取数据实时数据选择在 2020-09-01后的版本中才有。
2.2.2 效果展示
最终结果是配置的行权限取「或」关系,未配置行权限的角色和用户不算在或关系中,如下图所示:
2.3 部门层级的行权限先取「且」,不同部门间行权限再取「或」
例:公司部门层级关系为测试组 - 产品线1、产品线2,开发组 - 产品线1、产品线2 , 如下图所示:
示例数据:员工信息表.xlsx
2.3.1 权限设置
1)添加员工信息表如下图所示:
2)用户 Alice 既是产品线 1 的测试组成员,又是产品线 1 的开发组成员。对整个测试组分配员工信息表的权限,设置行权限为员工信息表.部门=测试组,如下图所示:
3)对测试组下的产品线 1 组分配员工信息表的权限,添加行权限为员工信息表.小组别=产品线 1 ,如下图所示:
4)对整个开发组分配员工信息表的权限,添加行权限为员工信息表.部门=开发组,如下图所示:
5)对开发组下的产品线 1 分配员工信息表的权限,添加行权限为员工信息表.小组别=产品线 1 ,如下图所示:
2.3.2 效果查看
Alice 登录FineBI系统查看「员工信息表」,Alice 可以看到产品线 1 测试组和产品线 1 开发组的数据,如下图所示:
(先根据部门层级间行权限取且,不同的部门间行权限再取或)
2.4 有关联关系的表设置行权限,主表可过滤子表(跨业务包生效)
例:现有三张表:「产品名称维度表」、「合同事实表」、「合同回款事实表」,关联关系如下图所示:
注:「产品名称维度表」是「合同事实表」的主表,「合同事实表」是「合同回款事实表」的主表。
1)将「产品名称维度表」、「合同事实表」添加至业务包 A ,将「合同回款事实表」添加至业务包 B ,并为用户Alice设置「产品名称维度表」和「合同回款事实表」的使用权限,如下图所示:
2)管理员为用户Alice设置业务包 A 中「合同事实表」行权限,购买的产品等于「1」 ,如下图所示:
2.4.2 效果查看
1)普通用户 Alice 登录FineBI系统查看,「合同事实表」的主表「产品名称维度表」可以看到所有的数据,不会受到行权限的影响,如下图所示:
2)「合同事实表」以及作为「合同事实表」的子表「合同回款事实表」只能看到购买的产品等于 1 的数据,受到了主表的行权限影响,如下图所示:
2.5 多重主表设置行权限取「且」关系
2.5.1 权限设置
例:现有三张表:「产品名称维度表」、「合同事实表」、「客户维度表」,关联关系如下图所示:
注:「产品名称维度表」和「客户维度表」都是「合同事实表」的主表。
1)对「产品名称维度表」设置行权限产品 ID 大于等于 5 ,如下图所示:
2)对「客户维度表」设置行权限,省份属于上海市,如下图所示:
3)对「合同事实表」设置使用权限,不设置行权限,如下图所示:
2.5.2 效果查看
Alice 登录FineBI系统查看「合同事实表」,「合同事实表」只能看到产品 ID 大于等于 5 并且客户省份为上海市对应的客户 ID 下的相关数据。 如下图所示:
3. 设置数据表列权限
3.1 从业务包「使用权限」切换成「管理权限」时,列权限需要重新配置
例如:在只开启业务包使用权限的情况下对行权限、列权限进行设置,此时再开启该业务包的管理权限,之前设置的行权限依然是生效的,而列权限则需要重新配置。
3.2 部门、角色之间的列权限设置取「或」关系,列权限用户最大原则
3.2.1 权限设置
例:用户 Alice 既属于技术支持 ,又属于普通角色。
1)对技术支持部门设置业务包 A 中「合同事实表」的列权限,选择字段合同金额、合同付款类型、合同类型,如下图所示:
2)对普通角色设置业务包 A 中「合同事实表」的列权限,选择字段合同类型、是否已经交货、合同签约时间,如下图所示:
3)此时再对用户维度设置列权限,选择「合同事实表」的「购买的产品」字段,如下图所示:
用户 Alice登录FineBI系统查看 「合同事实表」的界面,只显示「购买的产品」字段,则该用户的列权限完全取决于对该用户的设置,对部门角色的设置不再影响该用户,如下图所示: