1. 概述
1.1 版本
BI服务器版本 |
---|
5.1 |
1.2 预期场景
当公司机构存在树状的层级关系,每个层级想要分配不同的权限。
比如总行、分行、支行之间存在树状关系,需要根据不同机构为所属用户分配不同权限.
实现效果为总行可以看到所有的数据,分行看到所在分行数据和分行所辖支行所有数据,支行只看自己的数据。
1.3 实现思路
FineBI 多层级/树权限的实现步骤为「构建自循环列 > 服务器数据集导入用户(或者用户同步数据集) > 匹配用户登录所在字段 > 根据机构分配权限 > 根据用户分配权限」。
注:5.1.10 及之后版本的 BI 工程,实时数据不支持「自循环列」设置,用户可用自循环SQL分配权限,详情请参见:使用fine_username参数分配权限 。
序号 | 操作步骤 | 说明 |
---|---|---|
1 | 构建自循环列 | 原始的机构数据在添加到 BI 中以后,通常是不存在树状结构的。通过构建自循环列可以形成树状的机构关系,方便后续根据层级分配权限 |
2 | 导入用户 | 通过服务器数据集导入数据,或者使用用户同步数据集直接同步数据库中保存的用户表 |
3 | 匹配用户登录所在字段 | 将用户登录的账号与系统中保存的用户登录权限表账号进行匹配。此步骤是为了在用户登录系统时,根据用户登录的账号,来匹配用户所在机构 |
4 | 根据机构分配权限 | 根据不同层级的机构分配不同权限,从而在用户登录时根据机构匹配权限 |
5 | 根据用户分配权限 | 若存在某些用户仅能查看自己相关的数据时,可单独为这些用户分配匹配账号的权限,这样用户登录时仅能看到自己的相关数据 |
2. 准备示例数据
点击下载示例数据并解压:样式数据.zip
机构表:包含了银行总行、分行、支行,及对应的「机构码」和「上级机构码」,如下图所示:
用户权限表:包含了银行职员的用户账号、密码、所属机构码、部门及职务,如下图所示:
业务流水表:包含了对应职员能看到的交易数据,如下图所示:
3. 数据准备
3.1 新建 Excel 数据集
管理员登录数据决策系统,点击「数据准备」,新建一个业务包。
注:导入数据时机构、上级机构、机构号等字段需要选择为文本字段,否则在下面的自循环列设置中无法选择机构为显示值。
1)在业务包中添加 Excel 数据集「机构表」,请手动修改「机构」和「上级机构」字段格式为「文本」,如下图所示:
2)在业务包中添加 Excel 数据集「业务流水表」,请手动修改「地区号」、「机构号」和「柜员号」字段格式为「文本」,如下图所示:
3)在业务包中添加 Excel 数据集「用户权限表」,请手动修改「账号」和「机构」字段格式为「文本」,如下图所示:
3.2 添加表间关联
点击「数据准备」,进入业务包,选择「机构表」,点击「关联视图」,为「机构表」、「用户权限表」和「业务流水表」配置关联关系并更新数据表。如下图所示:
注1:添加关联关系的具体操作请参见:添加表间关联 。
注2:导入数据时机构、上级机构、机构号等字段需要选择为文本字段,否则在下面的自循环列设置中无法选择机构为显示值。
注3:2020-08-04 之后版本的 BI 工程,业务包更新时,不会更新 Excel 数据集关联,可使用全局更新。
3.3 创建自循环列
点击「数据准备」,进入业务包,选择「机构表」,点击「编辑」,全选字段,创建「自循环列」,配置机构表的层级关系。如下图所示:
自循环列类型选择「根据两列数据分层」,分层结果显示值选择「机构」和「机构名称」,分层依据 ID 列选择「机构」,Parent ID列选择「上级机构」。
点击「构建关系」和「预览」,可看到如下的分层和数据预览。点击右上角的「保存」即可保存该自循环列操作。如下图所示:
4. 设置仪表板
4.1 新建自助数据集
管理员登录数据决策系统,点击「数据准备」,在「我的自助数据集」下添加「自助数据集」。
选择「业务流水表」和「机构表」中的所有字段,点击「保存并更新」,如下图所示:
注:由于示例使用的是超级管理员账号,超级管理员默认为数据处理用户,在普通业务包下创建的自助数据集无法继承基础表权限,因此需要在我的自助数据集下创建,若使用的是数据分析用户来创建自助数据集则直接在普通业务包下创建并勾选 权限继承 即可。
4.2 创建仪表板
对于创建好的自助数据集,确认勾选「权限继承」。点击「创建组件」,图表类型选择「分组表」,维度依次选择「机构名称-层级1」、「机构名称-层级2」、「机构名称-层级3」、「柜员号」、「交易名称」、「交易金额」和「票号」,点击「进入仪表板」,如下图所示:
创建好的仪表板如下图所示:
4.3 挂载仪表板
管理员登录数据决策系统,点击「管理系统>目录管理」,在目录下挂载上节创建的仪表板,如下图所示:
5. 用户管理
5.1 创建服务器数据集
管理员登录数据决策系统,点击「管理系统>数据连接>服务器数据集」,点击「创建数据集>文件数据集」。
数据集名称为「用户表」,文件类型选择「Excel」,选择第二章准备的「用户权限表」,点击「保存」,如下图所示:
5.2 导入用户
管理员登录数据决策系统,点击「管理系统>用户管理」,点击「所有用户>导入用户」。
选择上节创建的服务器数据集,具体设置如下图所示,点击「确定」,即可成功导入用户。
5.3 设置平台使用用户
管理员登录数据决策系统,点击「管理系统>用户管理」,点击「平台使用用户」。
将上节导入的用户全部添加为「PC端使用用户」,如需用户有编辑和查看的权限,将所有新导入用户添加进「数据处理用户」,如下图所示:
6. 权限配置
6.1 分配目录权限
管理员登录数据决策系统,点击「管理系统>权限管理>普通权限配置」,选择「管理部」和「业务部」。
点击「目录权限」,分别为这两个部门分配第四章创建的「业务流水仪表板」的「查看」权限。如下图所示:
6.2 设置登录用户所在字段
登录用户名所在字段配置是指将系统的登录用户与对应数据表用户信息所在字段进行绑定,以便于对用户进行权限控制。
管理员登录数据决策系统,点击「管理系统>权限管理>普通权限配置」,选择权限载体「部门/角色/用户」,此处选择所有部门。
选择「数据权限」Tab,点击「登录用户所在字段」处的「请选择」,选择业务包中的「用户权限表」,选择「账号」字段,如下图所示:
6.3 根据机构分配管理部数据权限
管理员登录数据决策系统,点击「管理系统>权限管理>普通权限配置」,选择「管理部」。
点击「数据权限」,为管理部分配「业务流水仪表板」用到的「业务流水表」和「机构表」的「使用」权限。如下图所示:
此时管理部的所有人可以看到所有数据。若要实现的是总行可以看到所有的数据,分行看到所在分行和管辖支行的数据,支行看到自己的数据,需要根据所在机构配置用户数据权限。
选择「机构表」后的「权限设置」按钮,添加行权限条件,使得「机构表.机构」字段「属于(登录者信息)」的「用户权限表.机构」字段,点击「确定」,如下图所示:
6.4 根据用户分配业务部数据权限
管理员登录数据决策系统,点击「管理系统>权限管理>普通权限配置」,选择「业务部」。
点击「数据权限」,为业务部分配「业务流水仪表板」用到的「业务流水表」和「机构表」的「使用」权限。如下图所示:
此时业务部的所有人可以看到所有数据。若要实现柜员只看自己的数据,需要根据柜员账号配置用户数据权限。
选择「业务流水表」后的「权限设置」按钮,添加行权限条件,使得「业务流水表.柜员号」字段「属于(登录者信息)」的「用户权限表.账号」字段,点击「确定」,如下图所示:
7. 效果查看
分别使用支行长、分行长、柜员账号登录数据决策系统,查看「业务员流水仪表板」。
1)分行长(账号为99)显示为所有地区号为 22 (即南昌分行),查看仪表板显示包括下属地区的数据,如下图所示:
2)支行长(账号为101)显示为所有机构号为 22701(即 A 支行)的数据,如下图所示:
3)柜员(账号为6159)显示仅为本柜员号 6159 的数据,如下图所示: