我将在我的模型中实现动态行级安全性。
如果登录用户存在于我的维度中,则他只能看到自己的数据,如果用户不存在于我的维度中,则他可以看到所有内容。
在SSAS表格中工作完美。
来自我的SSAS表格模型的DAX代码,该模型在维度DimBrugerRettigheder -> DAX上的角色->行过滤器中实现:
=IF(包含(DimBrugerRettigheder,original_login,USERNAME()),DimBrugerRettighederoriginal_login = USERNAME(),TRUE())
多维数据模型几乎与我的表格模型相同。
只需要在MDX中翻译代码
MDX代码将在角色->维数据->维DimBrugerRettigheder ->高级->允许的成员集中实现:->编辑MDX
发布于 2021-04-26 16:24:47
我理解您的代码的含义是“如果当前用户的名称不包含在column (在DAX中,在MDX中这将是属性) 'original_login‘中,则授予对所有行的访问权限,否则,仅授予对列/属性具有用户名作为其内容的行的访问权限。
我将其转换为MDX,如下所示:
IIf(IsError(StrToMember('[DimBrugerRettigheder].[original_login].[' + UserName + ']')),
[DimBrugerRettigheder].[original_login].[original_login].Members,
{StrToMember('[DimBrugerRettigheder].[original_login].[' + UserName + ']')}
)
本质上,如果属性[DimBrugerRettigheder].[original_login]
中没有当前成员的有效成员,则所有成员都是允许的成员集,否则,仅此单个成员是允许的成员集的唯一成员。
https://stackoverflow.com/questions/67178481
复制相似问题