使用系统参数分配权限

  • Last update:March 18, 2022
  • 1. 概述

    1.1 版本

    BI服务器版本
    功能变更
    5.1-
    5.1.21新增支持系统参数$fine_role、$fine_position、$fine_display_name

    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,'='),3),"}"),1)}'

    $fine_display_name登录用户的姓名参数$fine_display_name=张三

    1.4 注意事项

    1)系统参数在仪表板分析时,无法对其进行 过滤组件参数绑定(特殊参数默认隐藏)过滤等操作。

    2)本文介绍的参数用法需要使用「实时数据」,直连数据库的数据表才能使用。

    3)FineBI5.1.21 之前版本,只支持「系统用户名」参数:$fine_username 。

    2. 示例

    示例以 FineBI 内置的「FRDemo」数据下的「aaa_user」用户信息表为例,使用「fine_username」系统参数。

    2.1 新建服务器数据集

    管理员登录数据决策系统,点击「管理系统>数据连接>服务器数据集」,新建一个 SQL 数据集。

    数据集名称为「用户信息表」,选择数据来源为「FRDemo」,添加 SQL 语句「select * from aaa_user」,点击「保存」,如下图所示:

    2.2 导入用户

    管理员登录数据决策系统,点击「管理系统>用户管理」。

    点击「导入用户」,选择上节创建的服务器数据集,具体设置如下图所示,点击「确定」,如下图所示:

    image.png

    2.3 设置用户类型

    管理员登录数据决策系统,点击「管理系统>用户管理」,点击「平台使用用户」。

    将上节导入的用户全部添加为「PC端使用用户」,如需用户有编辑和查看的权限,将所有用户添加进「BI 数据分析用户」,如下图所示:

    2.4 创建 SQL 数据集

    管理员登录数据决策系统,点击「数据准备」,将数据列表切换为「实时数据」。新建一个「用户信息」业务包并进入,选择「添加SQL数据集」。

    表名称为「用户信息表」, SQL语句为 「select * from aaa_user where 账号='${fine_username}'」,获取 fine_username 的参数,点击「确定」,如下图所示:

    注1:仅支持实时数据,不支持抽取数据。

    注2:参数不能写在 SQL 的选字段部分,例如:select 账号 as '${fine_username}' ,密码, 机构,职务 from aaa_user 。只能写在过滤条件里面,BI不支持动态选择字段。

    注3:管理员查看该表,数据为空,因为该用户表中实际并不存在管理员的信息。

    2.5 分配数据使用权限

    管理员登录数据决策系统,点击「管理系统>权限管理>普通权限配置」,选择「所有部门」。

    点击「数据权限」,选择「实时数据」,为 所有部门分配实时数据中「用户信息表」的「使用」权限,如下图所示:

    2.6 效果查看

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

    22 部门用户 99 登录数据决策系统,点击「数据准备>用户信息>用户信息表」,只能查看自己的信息。如下图所示:

    1601186412902970.png

    26 部门用户 98 登录数据决策系统,点击「数据准备>用户信息>用户信息表」,只能查看自己的信息。如下图所示:

    1601186822350678.png

    附件列表


    主题: BI平台管理指南
    • Helpful
    • Not helpful
    • Only read

    滑鼠選中內容,快速回饋問題

    滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

    不再提示

    10s後關閉

    Get
    Help
    Online Support
    Professional technical support is provided to quickly help you solve problems.
    Online support is available from 9:00-12:00 and 13:30-17:30 on weekdays.
    Page Feedback
    You can provide suggestions and feedback for the current web page.
    Pre-Sales Consultation
    Business Consultation
    Business: international@fanruan.com
    Support: support@fanruan.com
    Page Feedback
    *Problem Type
    Cannot be empty
    Problem Description
    0/1000
    Cannot be empty

    Submitted successfully

    Network busy