历史版本2 :使用系统参数分配权限 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1、描述编辑

对于很多企业来说,有时候往往希望某些数据表中,不同部门职位的员工只能看到自己部门的数据。除了之前介绍的多层级权限需求实现外,还可以通过FineBI平台的系统参数 fr_username 实现此场景。

参数fr_username属于FineBI平台系统的内置参数,可以自动获取到平台当前登录用户的登录名称。

222

并且参数fr_username是区别于其他普通参数的,在仪表板分析时,无法对其进行过滤组件参数绑定(特殊参数默认隐藏)过滤等操作。

222

下面以具体案例来演示如何通过参数fr_username来实现权限分配的功能。

2、示例编辑

2.1 SQL数据集配置

登录FineReport设计器,参考设计器远程连接方法及步骤连接FineBI服务器,配置系统用户的服务器数据集,如下图:

222

点击确定保存该服务器数据集。登录FineBI数据决策系统,进入管理系统>用户管理,开启用户同步数据集,选择数据表中相关对应字段,点击确定即可成功实现FineBI平台用户数据集的同步。如下图:

222

点击立即同步保存该用户配置。随后进入数据准备>业务包下,选择添加SQL数据集,输入带参数的SQL如下图所示,获取fr_username的参数。

select * from aaa_user where 账号='${fr_username}'

222

注:where 账号='${fr_username}'中,账号为对应之前用户同步数据集中的登录用户名。  

点击确定保存该带参数的用户表。为该表开启实时数据按钮,直连数据库,如下图:

222

2.2 效果展示

管理员新建仪表板,将上面添加的SQL表的相关字段拖拽至组件中,如下图:

222

可以看到管理员是看不到任何该表数据的。因为SQL语句的过滤条件是where id='${fr_username}',由于该用户表中实际并不存在管理员的信息,所以管理员实际是看不到该表的任何数据的。

将该仪表板挂出并分配权限给普通用户以后,改用其他账户登陆查看当前仪表板内容便可发现每个用户都只能看到自己的数据,即说明我们成功地实现了实时数据SQL数据表的权限控制功能。

用户账号99登录后的查看效果如下所示,仅能看到自身的数据:

222

用户账号101登录后的查看效果如下图所示,仅能看到自身的数据:

222

用户账号5648登录后的查看效果如下图所示,仅能看到自身的数据:

222