1. 概述
1.1 版本
BI服务器版本 |
---|
5.1 |
1.2 预期场景
当公司存在树状的层级关系,每个层级想要分配不同的权限。
比如公司领导、区域主管、区域组员间存在树状关系,需要根据不同门店维度为用户分配不同权限。
实现效果为公司领导可以看到全部数据,区域主管看到对应区域的数据,区域组员只能看到自己的数据。
1.3 实现思路
本文使用「四联表模型」来实现多层级/树权限的权限配置。
1.3.1 模型搭建
「四联表模型」搭建过程如下:
1)准备四类数据表
用户信息表:存储用户信息,「账号」字段作为用户的唯一标识。
门店维度表:存储门店信息,「店号」字段作为门店的唯一标识。
用户-门店权限表:存储用户对门店维度的数据查看权限,即用户能看到哪些门店的数据。
销量明细表:存储各门店的销量数据,作为仪表板的数据来源。
2)添加两类表间关联
关联 A:
建立「用户信息表」与「用户-门店权限表」的关联,关联关系为 1:N。
关联后,通过用户的「账号」字段可以查询出「用户-门店权限表」中该用户对应的数据。
关联 B:
建立「门店维度表」与「销售明细表」的关联,关联关系为 1:N。
关联后,通过门店的「店号」字段可以查询出「销量明细表」中该门店对应的数据。
3)配置权限
设置登录用户所在字段为「用户信息表」中的「账号」字段。
在门店维度表上,设置行权限:「门店维度表.店号」字段「属于(登录者信息)」的「用户-门店权限表.店号」字段。
1.3.2 使用「四联表模型」
使用「四联表模型」,用户登录 FineBI 系统查看仪表板数据的逻辑如下:
系统获取登录用户名,通过关联 A 获取「用户-维度权限表」中该用户对应的数据。
通过配置的行权限,查询「门店维度表」,获取该用户所能看到的门店维度值。
通过关联 B ,使用门店维度值过滤出「销量明细表」中对应门店的数据。
1.3.3 实现步骤
FineBI 多层级/树权限的实现步骤为「数据准备>添加表间关联> 服务器数据集导入用户(或者用户同步数据集) > 设置登录用户名所在字段 > 根据门店维度分配权限」。
注:5.1.10 及之后版本的 BI 工程,实时数据不支持「自循环列」设置,用户可用自循环SQL分配权限,详情请参见:使用fine_username参数分配权限 。
序号 | 操作步骤 | 说明 |
---|---|---|
1 | 数据准备 | 1)准备数据表,包括:用户信息表、门店维度表、用户-门店权限表、销量明细表 2)新建 Excel 数据集,将以上四张表导入业务包,用于后续分析 |
2 | 添加表间关联 | 1)建立「用户信息表」与「用户-维度权限表」的关联,关联关系为 1:N 2)建立「门店维度表」与「销售明细表」的关联,关联关系为 1:N |
3 | 导入用户 | 通过服务器数据集导入数据,或者使用用户同步数据集直接同步数据库中保存的用户表 |
4 | 匹配登录用户名所在字段 | 此步骤是为了在用户登录系统时,根据用户登录的账号,匹配到用户对应的门店维度 |
5 | 根据门店维度分配权限 | 根据不同门店维度分配不同权限,从而在用户登录时根据门店维度匹配权限 |
2. 数据准备
2.1 准备示例数据
点击下载示例数据并解压:多层级权限示例数据.zip
用户信息表:包含了账号、密码、部门及职务,如下图所示:
门店维度表:包含了店号、店名,如下图所示:
用户-门店权限表:包含了账号、店号。其中领导(xa1)有所有门店的数据权限;北京区域主管(ecco)有门店「11011、11012」的数据权限;北京一店店长(Alice)只有自己门店「11011」的数据权限。如下图所示:
销量明细表:包含了公司各个门店的销量数据,如下图所示:
2.2 新建 Excel 数据集
管理员登录数据决策系统,点击「数据准备」,新建一个业务包。
注:导入数据时机构、上级机构、机构号等字段需要选择为文本字段,否则在下面的自循环列设置中无法选择机构为显示值。
1)在业务包中添加 Excel 数据集「用户信息表」,如下图所示:
2)在业务包中添加 Excel 数据集「门店维度表」,请手动修改「店号」字段格式为「文本」,如下图所示:
3)在业务包中添加 Excel 数据集「用户-门店权限表」,请手动修改「店号」字段格式为「文本」,如下图所示:
4)在业务包中添加 Excel 数据集「销量明细表」,请手动修改「店号」字段格式为「文本」,如下图所示:
3.2 添加表间关联
注1:添加关联关系的具体操作请参见:添加表间关联 。
注2:2020-08-04 之后版本的 BI 工程,业务包更新时,不会更新 Excel 数据集关联,可使用全局更新。
1)点击「数据准备」,进入业务包,选择「用户信息表」,点击「关联视图」,点击「关联视图」,配置与「用户-门店权限表」的关联关系并更新数据表。如下图所示:
2)选择「门店维度表」,点击「关联视图」,点击「关联视图」,配置与「销量明细表」的关联关系并更新数据表。如下图所示:
4. 设置仪表板
4.1 新建自助数据集
管理员登录数据决策系统,点击「数据准备」,在「我的自助数据集」下添加「自助数据集」。
选择「销售明细表」中的所有字段,点击「保存并更新」,如下图所示:
注:由于示例使用的是超级管理员账号,超级管理员默认为数据处理用户,在普通业务包下创建的自助数据集无法继承基础表权限,因此需要在我的自助数据集下创建,若使用的是数据分析用户来创建自助数据集则直接在普通业务包下创建并勾选 权限继承 即可。
4.2 创建仪表板
点击「创建组件」,图表类型选择「分组表」,维度依次选择「店号」、「品牌编号」,指标依次选择「销售额」、「毛利」,点击「进入仪表板」,如下图所示:
创建好的仪表板如下图所示:
4.3 挂载仪表板
管理员登录数据决策系统,点击「管理系统>目录管理」,在目录下挂载上节创建的仪表板,如下图所示:
5. 用户管理
5.1 创建服务器数据集
管理员登录数据决策系统,点击「管理系统>数据连接>服务器数据集」,点击「创建数据集>文件数据集」。
数据集名称为「用户表」,文件类型选择「Excel」,选择第二章准备的「用户信息表」,点击「保存」,如下图所示:
5.2 导入用户
管理员登录数据决策系统,点击「管理系统>用户管理」,点击「所有用户>导入用户」。
选择上节创建的服务器数据集,具体设置如下图所示,点击「确定」,即可成功导入用户。
5.3 设置平台使用用户
管理员登录数据决策系统,点击「管理系统>用户管理」,点击「平台使用用户」。
将上节导入的用户全部添加为「PC端使用用户」,如需用户有编辑和查看的权限,将所有新导入用户添加进「数据处理用户」,如下图所示:
6. 权限配置
6.1 分配目录权限
管理员登录数据决策系统,点击「管理系统>权限管理>普通权限配置」,选择「管理部」和「销售部」。
点击「目录权限」,分别为这两个部门分配第四章创建的「销量分析仪表板」的「查看」权限。如下图所示:
6.2 设置登录用户所在字段
登录用户名所在字段配置是指将系统的登录用户与对应数据表用户信息所在字段进行绑定,以便于对用户进行权限控制。
管理员登录数据决策系统,点击「管理系统>权限管理>普通权限配置」,选择权限载体「部门/角色/用户」,此处选择所有部门。
选择「数据权限」Tab,点击「登录用户所在字段」处的「请选择」,选择业务包中的「用户信息表」,选择「账号」字段,如下图所示:
6.3 根据门店维度分配数据权限
管理员登录数据决策系统,点击「管理系统>权限管理>普通权限配置」,选择「管理部」和「销售部」。
1)点击「数据权限」,分别为这两个部门分配「销量分析仪表板」用到的「销量明细表」和「门店维度表」的「使用」权限。如下图所示:
2)选择「门店维度表」后的「权限设置」按钮,分别为「管理部」和「销售部」添加行权限条件,使得「门店维度表.店号」字段「属于(登录者信息)」的「用户-门店权限表.店号」字段,点击「确定」,如下图所示:
7. 效果查看
分别使用领导、北京区域负责人、北京一店店长的账号登录数据决策系统,查看「销量分析仪表板」。
1)领导(账号为xa1,密码为123)可以看到所有门店的销量数据。如下图所示:
2)北京区域负责人(账号为ecco,密码为123)可以看到北京区域门店的销量数据。如下图所示:
3)北京一店店长(账号为Alice,密码为123)仅能查看到本店的数据,如下图所示: