【问题标题】:PowerBI RLS Manage Roles with Multi tablePowerBI RLS 使用多表管理角色
【发布时间】:2021-11-05 02:37:55
【问题描述】:

PS 表格不能更改 可以在 VIEW 和 Power Query 中添加列并进行更改。

我已经解释了图片中的问题希望你们能帮助我 我试图在表 Child 和 RLS1 RLS2 RLS3 之间进行连接,但我只能使用一个。

我的想法是使用这个 DAX(我更指定使用 USERPRINCIPALNAME()

RLS1 = USERPRINCIPALNAME() ||

RLS2 = USERPRINCIPALNAME() ||

RLS3 = USERPRINCIPALNAME() ||

( USERPRINCIPALNAME() = tblDimOverride'[Override]' && tblDimOverride'[Child]' = RLS1) ||

( USERPRINCIPALNAME() = tblDimOverride'[Override]' && tblDimOverride'[Child]' = RLS2) ||

( USERPRINCIPALNAME() = tblDimOverride'[Override]' && tblDimOverride'[Child]' = RLS3)

但我仍然认为我需要加入表格才能将其拉出,但我不能这样做,因为您可以将 Child 链接到一个 RLS,我需要它,就像他们三个的 SQL 一样。 而且我认为如果我可以链接它们,我只需要

RLS1 = USERPRINCIPALNAME() ||

RLS2 = USERPRINCIPALNAME() ||

RLS3 = USERPRINCIPALNAME() ||

USERPRINCIPALNAME() = tblDimOverride'[覆盖]'

添加 20210920

我在“处理角色”中尝试过类似的事情

... || LOOKUPVALUE([RLS1],'tblDimOverride'[Child],userprincipalname()) 我需要它用于 RLS1...RLS(n),所以 RLS1 和 Child 之间没有链接。

然后我得到这个错误

不存在或与当前上下文中可用的任何表无关 但正如之前解释的那样,我不能有从孩子到 RLS1.RLS2.RLS3 的关系......

添加 20210929

是否进行了额外的可视化,如果我会进行查找(无法在 PowerBI 中解决它)并将值合并到一列中。这看起来不是一个好的解决方案。 所以我认为20210920的解决方案是最好的,但无法解决

【问题讨论】:

  • 您实际上想在这里实现什么?不幸的是,您的解释不是很清楚。图像中的第一行表示“......而 Bud 将看到来了”。你的意思是看到一样吗?如果是这样,为什么GodBud 之间有区别? RLS 是什么意思? (只是希望让不了解或不了解您的业务逻辑的外人更容易理解)。
  • @SchmitzIT 是的,语言翻译修复了错误。 come=same.RLS 是角色级别的安全性,可以在 START>Handel 角色中找到。业务逻辑和所有必需品都在文本中。Bud 是所有人的主厨,拥有 midel 管理和工作。上帝甚至可以看到芽排。但现在他们希望特定的人看到像彼得斯工人一样。而这些人并没有超过 RLS 中的 Peter。并且添加新的 RLS4 并不明智,因为可以从组织树中添加更多人作为 exepletion。所以他们需要从另一个覆盖表链接。其他人将如何看待 Peters 工人。

标签: sql powerbi roles


【解决方案1】:

如果您将 tblDimMain 重塑为 parent/child hierarchy 表,这会容易得多:

一旦你有了这个,你可以用一个相当简单的条件过滤这个表:

PATHCONTAINS ( Main[Path], USERPRINCIPALNAME() )
    || PATHCONTAINS (
           Main[Path],
           LOOKUPVALUE ( Override[Child], Override[Override], USERPRINCIPALNAME() )
       )

【讨论】:

  • 抱歉,我无法更改主表,它使用 RLS1.RLS2 固定....n 正确的表大约有 2800 行人。这已经是 PowerBI 连接到现在的结构了。和数据仓库取决于它。这不是一个容易解决的问题,我花了 2 周时间试图解决它。但是,如果您能够帮助从 powerbi 建立主要路径,那么我只需要一个具有多值的列。从覆盖表生成并与 RLS1.RLS2....n 结合...看起来您能够解决它,但还没有完全解决,但我无法接受并根据您的专业知识进行调整跨度>
  • 对于我建议的工作方法,您需要一个维度表,其中每个人只有一行(无论是在 [Name] 列下还是在 RLS 列之一中)。我可以帮助您重塑您的表以在查询编辑器中实现此目的,但是编写具有分散在多个列中的唯一名称的逻辑(如当前表)太麻烦了。我很难想象您的 tblDimMain 与您模型的其余部分有何关联。它与模型中的其他表有什么关系?
  • OKi 那么这不是解决方案
  • 在您的解决方案中,一个人可以在同一家公司拥有两份工作吗?这在一个城市很常见。我们说清洁工 50% 和看门人 50%
  • 可能。如果一个人有多个直接主管,那么它真正崩溃的地方是。这意味着层次结构不是简单的树,而是更复杂的有向图(甚至可能包含cycles)。
猜你喜欢
  • 2018-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-27
  • 2011-01-05
  • 1970-01-01
  • 1970-01-01
  • 2015-07-29
相关资源
最近更新 更多