【问题标题】:Translate DAX to MDX将 DAX 转换为 MDX
【发布时间】:2021-07-14 14:57:41
【问题描述】:

我即将在我的模型中实现动态行级安全性。

如果我的维度中存在登录用户,他只能看到他的数据,如果用户没有在我的维度中退出,则他可以看到所有内容。

在 SSAS 表格中完美运行。

DAX 代码来自我在角色中实现的 SSAS 表格模型 -> 维度 DimBrugerRetigheder 上的行过滤器 -> DAX:

=IF(CONTAINS(DimBrugerRetigheder, [original_login], USERNAME()), DimBrugerRetigheder[original_login] = USERNAME(), TRUE())

多维数据模型与我的表格模型几乎相同。

只需要翻译MDX中的代码

MDX 代码将在角色中实现 -> 维度数据 -> 维度 DimBrugerRetigheder -> 高级 -> 允许的成员集:-> 编辑 MDX

【问题讨论】:

    标签: dax mdx


    【解决方案1】:

    我理解您的代码的含义是“如果当前用户的名称不包含在列中(在 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]中没有当前Username的有效成员,则所有成员都是允许成员集,否则,只有这一个成员是允许成员集的唯一成员。

    【讨论】:

      猜你喜欢
      • 2020-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-09
      • 2011-12-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多