一,配置報表查看權限
方法一:使用dynamic365添加用户組管理
參考教程:https://www.pianshen.com/article/25031937531/
方法二:配置訪問目錄和用户角色
方法三:如果數據源是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)
實操:
- 背景:用户分三層,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]
))