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打造了可復用的產品級模板供企業直接復用。