PowerBI 企业级全动态权限控制解决方案模板
- 2019 年 10 月 6 日
- 筆記

如果你也遇到 PowerBI 权限控制的企业级难题,那本文模板正是你需要的。
一段时间前,我们发布了 PowerBI 全动态权限控制方案,该方案基本完善地介绍了在 PowerBI 如何进行动态化的权限控制。而作为企业级的方案,还可能面临更多苛刻的要求,如:按角色设置权限;可测试;可快速移植;可容错。
本次发布的解决方案可以解决上述所有问题,是企业级全动态的完整解决方案。
介绍
本方案通过Excel作为配置文件实现PowerBI的全动态权限控制,其优点在于:
- 【模式1】可以直接为用户设置权限。
- 【模式2】可以先为用户设置角色,再为角色设置权限。
- 可以根据实际情况使用【模式1】或【模式2】其中一种,或同时使用。
- 用户对Excel配置文件的配置是任意灵活的,随意扩展列。
- Excel配置文件做了“防呆”处理,可以兼容用户输入的错误。
- 模式复制非常简单:一键复制PQ;一键复制度量值修改2处参数即可。
- 超越PowerBI内置RLS权限控制的能力。
- 发布报告后,修改权限控制仅需修改Excel配置文件,通过数据网关刷新即可。
- 另外,解决方案提供的模板文件还附有测试部分,让用户使用更加放心完整。
流程图解

步骤如下:
- 用户在 Excel配置文件 中进行权限配置
- 在本地编辑PowerBI报告文件
- 发布到云端
- 通过数据网关读取 Excel权限配置文件 来动态设置权限
权限配置
有三种模式可以设置权限:
【模式1】直接为用户设置权限

【用户名称】及【用户账号】是必须的,而后面的列是可以任意扩展的,自由度非常大;填写内容标签时有防呆融错处理,防止用户随手的录入错误。
适用场景推荐:企业人员不多,且都可以单独设置。
【模式2】为角色设置权限后为用户赋予角色
首先,为角色设置权限:

其次,为用户赋予角色:

适用场景推荐:企业人员较多,但比较规整,可以通过角色分类,随后为角色设置权限。
【模式3】是综合【模式1】与【模式2】
可以同时(且这是默认的)使用【模式1】与【模式2】。
如何使用
第一步,将PQ查询一起复制进入目标PBI文件:

PQ中使用参数化路径,可以灵活调节配置文件位置。
第二步,将权限控制度量值复制:

复制并修改模板度量值即可:

只需要修改2处即可:
- “地区-省份”与Excel配置文件中的列名对应。
- ‘地区’[省/自治区]与上条设置文本欲控制的列对应。
RLS 最简化的设置
与常见RLS不同,这里只需要一个作为壳:

而且表达式千篇一律,皆为:[xxxx]=TRUE()。记忆和使用起来非常简单。
自带综合权限预览
方案配备一个预览,可以理解查阅某用户最终综合权限:

- 选择一个用户
- 查看其直接拥有的权限
- 查看其作为角色而拥有的权限
- 综合所有权限效果
自带测试驱动报表开发
通过上述自带预览部分,可以用测试驱动的理念来核对某用户的权限,让预期设置与实际效果相匹配:

得到:

这样就得到了一致而正确的结果。
在云端配置
将本地报告发布到云端后,要确保云端满足三点:

- 被控制权限的人必须是成员。(而不能是管理员)
- 被控制权限的人必须只能查看。(而不能编辑)
再有就是:

必须在云端设置行级别安全性。即将用户装入,否则无法生效。
用模拟身份查看效果
用模拟身份查看就不需要用真实用户再登陆一次,往往也没有对方的账号可以登陆测试,所以需要模拟:

用数据网关实现全动态刷新权限
由于是企业范围,所以企业应该早有配置数据网关,然后:
- 修改 Excel权限配置 表;
- 刷新数据网关 即可。
也就是说:改变各种权限,无需重新编辑并发布PBI文件。

如下:
- 当前权限可以查看:北京,上海,浙江。
- 修改 Excel权限配置文件,加入:江苏。
- 刷新数据后可以看到:北京,上海,浙江,江苏。
这种变化动态完成,因此称为:全动态的解决方案。
总结
本文说明了企业级全动态权限的实现方案,如果您需要在企业实现类似方案,不妨参考尝试。
延伸阅读:
PowerBI 企业级权限控制全动态终极解决方案 PowerBI 实现不同角色看到内容不同支持动态权限管理
以上两篇文章结合本文已经给出了非常细致的解释和思路。但作为一个产品级可复用的解决方案,Excel120打造了可复用的产品级模板供企业直接复用。