1. 概述
1.1 版本
FineBI服务器版本 | 功能变更 |
---|---|
6.0 | - |
1.2 应用场景
对于很多企业来说,有时候希望某些数据表中,员工只能看到与自己有关的数据。
除了之前介绍的 多层级权限需求实现 外,还可以通过添加 FineBI 系统参数实现此场景。
1.3 功能简介
用户可通过系统参数,自动获取当前平台登录用户的登录名,用户名,部门,职务,角色等。
系统参数 | 定义 | 返回值示例 |
---|---|---|
$fine_username | 登录用户的用户名参数 | $fine_username=eoco |
$fine_role | 登录用户的角色参数 | $fine_role=[测试组长, 测试同学] 注:当用户的角色为空时,此时参数返回空字符串。 |
$fine_position | 登录用户所属的组织机构集合的参数 | 返回的是一个json格式的数组 $fine_positon=[{jobTitle=部长, departments=人力资源}, {jobTitle=开发组长, departments=BI开发组}] 注1:当用户的部门职位为空时,此时参数返回空字符串。 注2:若一个用户有多个角色和多个部门职务的情况,可以在SQL数据集内与split函数配合使用,截取第一个职务字段。 示例:select * from aaa_user where 职务='${indexofarray(split(indexofarray(split(fine_position,'='),2),","),1)}' |
$fine_display_name | 获取登录系统的姓名(用户名) | 例如登录用户名为 安娜(Anna) $fine_display_name=安娜(Anna) |
1.4 注意事项
1)系统参数在仪表板分析时,无法对其进行 过滤组件参数绑定(特殊参数默认隐藏)过滤等操作。
2)本文介绍的参数用法需要使用「实时数据」,直连数据库的数据表才能使用。
2. 示例
示例以 FineBI 内置的「FRDemo」数据下的「aaa_user」用户信息表为例,使用「fine_username」系统参数。
2.1 新建服务器数据集
管理员登录FineBI系统,点击「管理系统>数据连接>服务器数据集」,新建一个 SQL 数据集。
数据集名称为「用户信息表」,选择数据来源为「FRDemo」,添加 SQL 语句「select * from aaa_user」,点击「保存」,如下图所示:
2.2 导入用户
管理员登录FineBI系统,点击「管理系统>用户管理>所有用户」,点击「导入用户」。
选择添加的服务器数据集「用户信息表」,并设置对应的「用户名、密码、部门、职务」等,点击「确定」。如下图所示:
2.3 设置用户类型
若「平台使用用户」中「PC端使用用户」及其子分类均为「不限人数」,则无需执行本节操作。
若「平台使用用户」中「PC端使用用户」及其子分类限制了人数,则必须执行本节操作,否则无法查看仪表板。
管理员登录FineBI系统,点击「管理系统>用户管理>平台使用用户」,将这些导入的用户添加至「BI使用用户(查看用户或设计用户)」中,如下图所示:
2.4 创建 SQL 数据集
管理员登录FineBI系统,点击「公共数据」,切换新建数据集属性为「直连数据」。
管理员登录FineBI系统,点击「公共数据」,添加文件夹「直连数据」。如下图所示:
选中文件夹,添加「SQL数据集」。
数据集名称为「用户信息表」, SQL语句为 「select * from aaa_user where 账号='${fine_username}'」,获取 fine_username 的参数,点击「确定」,如下图所示:
注1:仅支持实时数据,不支持抽取数据。
注2:FineBI不支持动态选字段,字段名和类型不支持动态切换,因此参数不能写在 SQL 的选字段的别名部分。
错误写法:select 账号 as '${fine_username}' ,密码, 机构,职务 from aaa_user 。
注3:管理员查看该表,数据为空,因为该用户表中实际并不存在管理员的信息。
2.5 分配数据使用权限
管理员登录数据决策系统,点击「管理系统>权限管理>普通权限配置」,选择权限载体为「所有部门」。
点击「数据权限」,为所有部门配置「直连数据」文件夹的「使用」权限。如下图所示:
2.6 效果查看
注:管理员是看不到任何该表数据的。因为 SQL 语句的过滤条件是「where 账号='${fine_username}'」,由于该用户表中实际并不存在管理员的信息,所以管理员实际是看不到该表的任何数据的。
22 部门用户 99 (用户99,密码123)登录FineBI系统,点击「公共数据>直连数据>用户信息表」,只能查看自己的信息。如下图所示:
26 部门用户 98 (用户98,密码123)登录FineBI系统,点击「公共数据>直连数据>用户信息表」,只能查看自己的信息。如下图所示: