我尝试使用动态 RLS 运行多维项目。我使用了一个示例来实现它。
在我的示例场景中,我有一个如下所示的幼崽:
我尝试为用户权限的测试结果编写正确的 MDX 查询。
SELECT {[Measures].[Point Transaction Count],[Measures].[Amount],[Measures].[Balance]} ON 0,
NonEmpty ([Club].[Club].[Club].MEMBERS,([Users].[User Name].&[[MyDomain]\a.ghasemi],[Measures].[User Permission Count])) ON 1
FROM [DynamicPointTransaction]
GO
积分交易计数 | 数量 | 平衡 | |
---|---|---|---|
测试俱乐部 | 30 | 34151 | 99210 |
这个结果是正确的,当我更改用户名时,在 SSMS 查询编辑器中运行良好。
现在,我在动态 RLS 中的问题,当我尝试在 VS 浏览器中设置查询以动态使用用户时,我发现权限维度出现错误。
“俱乐部”维度中的“俱乐部”属性生成的维度安全表达式无效。
我通过 DimesionData 创建了一个角色,其中允许的成员集如下:
NonEmpty (
[Club].[Club Id].[Club Id].Members,
(
StrToMember ("[Users].[User Name].&[" + UserName () + "]"),
[Measures].[User Permission Count]
)
)
添加成员资格,添加对 cub 和维度的读取权限。
当使用角色浏览或用户引发此错误时:
角色和用户之间没有区别...错误是稳定的。When choice Admin users, I don't have any error.