自从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 中将用户添加进角色中。