带有DAX的SSAS RLS实现

问题描述 投票:0回答:1

我有一个SSAS表格多维数据集,其中一个名为Projects的表之一,其中的列如Project_Managers,Special_Projects等。

[Special_Projects是一个布尔列,其值为1或0,它指示项目是否标记为特殊。

我正在此SSAS表格多维数据集中实现基本的RLS,我创建了一个角色-'可以访问特殊项目的PM。现在,我尝试使用DAX从Projects表中仅选择Special_Projects = 1

的那些行。

我尝试了一些DAX公式,例如CALCULATETABLE()EVALUATE(),但它们不起作用。

ssas dax ssas-tabular row-level-security
1个回答
2
投票

项目表上的行级安全性过滤器应为:

=Projects[Special_Project]

这些过滤器应返回布尔值,并且用户可以看到表达式为true的行。

上面假设列是您所说的布尔类型。如果是1或0,请尝试:

=Projects[Special_Project]=1

[如果您需要检查另一个表并且还对当前表中的列进行过滤,请尝试:

=IF(CONTAINS('vwUser',vwUser[Login],USERNAME()) ,Projects[Special_Project]=TRUE() ,Projects[Special_Project]=FALSE())

这应该向vwUser表中的用户显示特殊项目,向不在该表中的用户显示其他项目。

© www.soinside.com 2019 - 2024. All rights reserved.