PowerBI - 权限配置(报表权限,数据权限RSL)

一,配置报表查看权限
  方法一:使用dynamic365添加用户组管理
    参考教程:https://www.pianshen.com/article/25031937531/
  方法二:配置访问目录和用户角色
    参考教程:https://blog.csdn.net/bluefire5/article/details/119619022

  方法三:如果数据源是SQL,通过SQL AS实现人员或者部门级的权限控制

  方法四:同一工作区内有多个数据集(报告),若要配置不同用户查看不同数据集(报告)。可以仅在各个数据集添加用户权限,不给用户添加访问工作区权限。

 

二,配置行级权限
参考教程:
https://docs.microsoft.com/en-us/power-bi/admin/service-admin-rls
教程已经很细了,简单记录一下步骤:
Step1 -  准备数据,从文件路径获取限制行级权限的字段 [Country]
Step2 - 在PowerBI Desktop上选择角色管理,新建角色,CN,VN,,,
Step3 - 选择角色VN,右击表,双击字段Country,修改DAX为Country = "VN"
Step4 - 选择角色CN,,右击表,双击字段Country,修改DAX为Country = "CN"
Step5 - 对每个国家重复以上步骤
Step6 - 点击发布,选择Workspace
Step7 - 在PowerBI Service上,选择Workspace ->Workspace Access, 添加用户或用户组并设置为Views  (可以跳过)

Step8 - 选择刚刚发布的Dataset - >Security -> 在各个国家下添加对应的用户或用户组

  >>经测试,不在工作区、数据集或应用 添加用户权限,仅在数据集>安全性>组A 下添加用户,用户也可以查看相应报告下 (组A)的数据

Step9 - 测试,配置完成。


需求:不同的人或角色查看同一报表,显示不同数据(根据用户层级路径配置RSL)

参考:Dynamic Row Level Security with Organizational Hierarchy Power BI - RADACAD

实操:

  • 背景:用户分三层,A>A-1>A-1-1,A可查看其下所有用户行为数据,A-1可查看
  • 步骤:
    • step1 - 准备用户权限表usertable(为避免后面报错,建议把parent_level列的值""替换为null
    • level_now(用户当前层级)

      parent_level(用户上一层级)

      user_id(用户ID) user_email(用户邮箱地址)
      A testa testa@test.com
      A-1 A testa-1 testa-1@test.com
      A-1-1 A-1 test1-1-1 test1-1-1@test.com
        
    • step2 - 添加计算列
    • Path = PATH('usertable'[level_now],'usertable'[parent_level])
       PathItem = PATHITEM('usertable'[Path],1,0)
        PathContains = PATHCONTAINS('usertable'[Path],"RT01_01")
        PathLength = PATHLENGTH('零售辖区路径'[Path])
    • 建立关系,用户权限表与用户表建立一对多关系,双向筛选
    • 配置管理角色,发布后测试(本地测试时为生效,发布后测试ok)
    • PATHCONTAINS(
          '零售辖区路径'[Path],
          MAXX(
              FILTER('零售辖区路径',[empl_email_id]=USERNAME()),
              '零售辖区路径'[level_now]
      ))

       

posted @ 2021-07-07 16:48  未必是小小  阅读(1730)  评论(0编辑  收藏  举报