使用 DAX 实现 SSAS RLS



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

Special_Projects 是一个布尔列,其值为 1 或 0,用于说明项目是否标记为特殊。

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

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

"项目"表上的行级别安全性筛选器应为:

=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 表中的用户显示特殊项目,向不在该表中的用户显示其他项目。

最新更新