自從PowerBI 的DAX 函數 支持username() 或 userprincipalname()的函數后,我們就可以在Power BI中實現根據用戶的行級數據權限的控制。
username() 將返回采用域\用戶格式的用戶
userprincipalname() 將返回采用 user@contoso.com 格式的用戶
實現方式
1、權限的表的定義
權限表結構定義如下,如下圖所以a用戶可看ABC的數據,b用戶可看CD的數據。另外增加所有客戶與admin的關聯關系。
其中LoginID是AD用戶名 格式為【域\用戶】
2、Power BI Desktop 中的處理
a)可以訪問所有數據的用戶。
針對此類用戶,我們添加一個admin的角色。
設置DAX表達式 :LogonID] = "admin"
b) 帶有數據控制的用戶。
針對此類用戶,我們添加一個right_conrtl的角色。
設置DAX表達式:[LogonID] = username()
3、Power BI Report Server 中將用戶添加進角色中。