1. 概述编辑
1.1 应用场景
对于很多企业来说,有时候希望某些数据表中,不同部门职位的员工只能看到自己部门的数据。除了之前介绍的 多层级权限需求实现 外,还可以通过添加 FineBI 系统参数「fine_username」实现此场景。
1.2 功能简介
参数「fine_username」属于 FineBI 内置参数,可以自动获取当前平台登录用户的登录名称。
1.3 使用范围
2. 示例编辑
示例以 FineBI 内置的「FRDemo」数据下的「aaa_user」用户信息表为例,使用「fine_username」系统参数。
2.1 添加用户至 FineBI
详情可参见:管理系统中配置服务器数据集
2.1.1 建立数据连接
在「管理系统>数据连接>数据连接管理」中 配置数据连接 ,示例使用 DEMO 中已有的「FRDemo」,如下图所示:
2.1.2 新建服务器数据集
在「管理系统>数据连接>服务器数据集」中,新建服务器数据集「用户信息表」,选择数据来源为「FRDemo」,添加 SQL 语句「select * from aaa_user 」,点击「保存」,如下图所示:
2.1.3 导入用户
点击「管理系统>用户管理」,示例使用「导入用户」并设置使用的「服务器数据集」信息,点击「确定」,详情参见:导入用户,如下图所示:
注:也可以使用添加用户或者用户同步数据集方法同步所有服务器数据集中的用户,详情请参见:添加用户、同步用户数据集
导入用户如下所示:
导入后将用户添加至平台使用用户对应的用户类型中,详情参见:BI设计用户
2.2 使用 fine_username 参数创建数据集
进入「数据准备>用户信息业务包」下,选择「添加SQL数据集」,输入带参数的 SQL 「select * from aaa_user where 账号='${fine_username}'」,获取 fine_username 的参数,点击「确定」,如下图所示:
注:参数不能写在 SQL 的选字段部分,例如:select 账号 as '${fine_username}' ,密码, 机构,职务 from aaa_user 。只能写在过滤条件里面,BI不支持动态选择字段。
注:管理员查看该表,数据为空,因为该用户表中实际并不存在管理员的信息。
2.3 为不同用户分配不同权限
点击「管理系统>权限管理」,为 22 部门分配「用户信息表」的使用「数据权限」,如下图所示:
点击「管理系统>权限管理」,为 26 部门分配「用户信息表」的使用「数据权限」,如下图所示:
注意:如果没有【数据权限】,要检查一下【分级授权】有没有打开即可。
2.4 效果查看
注:管理员是看不到任何该表数据的。因为 SQL 语句的过滤条件是「where 账号='${fine_username}'」,由于该用户表中实际并不存在管理员的信息,所以管理员实际是看不到该表的任何数据的。
22 部门用户 99 登录数据决策系统,点击「数据准备>用户信息>用户信息表」,只能查看自己的信息。如下图所示:
26 部门用户 98 登录数据决策系统,点击「数据准备>用户信息>用户信息表」,只能查看自己的信息。如下图所示: