根据我的表格模型,我正在尝试编写一个方法来改变行为,这取决于有效用户所属的角色。这不是传统的行级安全性(RLS),因为我没有尝试按角色进行过滤;而是执行if-else。
我在https://community.powerbi.com/t5/Desktop/DAX-Expression-For-Role-Level-Security-Using-DirectQuery/td-p/489699遇到了以下解决方案,我相信它会起作用,但我更喜欢查询active directory来查看用户是否属于该角色,而不是模型上的另一个表。
我也看过一些关于从active directory获取Power BI属性的文章(例如https://community.powerbi.com/t5/Desktop/How-to-leverage-Active-Directory-to-filter-the-data-in-Power-BI/td-p/140479),但没有公开所使用的DAX的文章。
归根结底,如果我能在DAX中获得一个角色名称,或者调用一个函数来检查用户是否在某个角色中,我将是金色的(假设性能不会受到影响)。
编辑:我应该补充说,我目前正在利用三个函数中的一个来获取用户。USERNAME()
、USEROBJECTID()
和USERPRINCIPALNAME()
。
发布于 2019-12-07 00:51:47
我最终放弃了使用active directory,并做了似乎每个人都在做的事情(如我问题中发布的一个链接所示)。
作为参考,这里有一个演示解决方案的代码片段:
EVALUATE
SUMMARIZECOLUMNS (
"Some Measure",
IF (
LOOKUPVALUE('My User'[UsePrivilegedValue], [Name], USERNAME()),
SUM('Some Fact'[PrivilegedValue]),
SUM('Some Fact'[OtherValue])
)
)
https://stackoverflow.com/questions/58961201
复制相似问题