多维OLAP配置Dynamic RLS时出现维度安全表达式无效错误
我尝试运行搭载Dynamic RLS的多维项目,参考相关示例完成实现。
在我的示例场景中,Cube结构如下:
我编写了如下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
查询返回结果如下:
| Point Transaction Count | Amount | Balance | |
|---|---|---|---|
| TestClub | 30 | 34151 | 99210 |
该结果符合预期,在SSMS查询编辑器中更换用户名测试均运行正常。
目前我遇到Dynamic RLS相关问题:在VS浏览器中配置动态获取用户的查询时,抛出权限维度相关错误。
“Club”维度中的“Club”属性生成的维度安全表达式无效。
我通过DimensionData创建了角色,其允许成员集配置如下:
NonEmpty ( [Club].[Club Id].[Club Id].Members, ( StrToMember ("[Users].[User Name].&[" + UserName () + "]"), [Measures].[User Permission Count] ) )
我已添加角色成员,同时配置了Cube和各维度的读取权限。使用角色或对应用户身份浏览时均触发该错误:

使用角色和普通用户账号报错无差异,错误稳定复现;使用管理员账号浏览时无任何错误。
内容的提问来源于stack exchange,提问作者Amirhossein
相关产品推荐
相关产品推荐

