【问题标题】:What is "Apply security filter in both directions" (normal vs security filter)?什么是“双向应用安全过滤器”(正常与安全过滤器)?
【发布时间】:2021-10-11 13:21:46
【问题描述】:

我有带有用户 ID、用户名、用户邮箱的用户暗表

RLS 使用 username() 过滤器应用于此表

用户 dim 表连接到 userid 上的销售事实表,因此用户只能看到他的销售额。

在 company_id 上存在从销售事实表到公司暗表的关系(1 公司有很多销售,1:M)。在这个关系上,我将交叉过滤方向设置为Both,因此选择少数销售事实记录会显示(过滤)相应的公司名称。

当我建立双向关系时,有一个名为“双向应用安全过滤器”的选项。无论是否选中,所选销售的过滤器都会作为过滤器传递到公司暗表中。

那么勾选这个功能有什么用呢?普通过滤器和安全过滤器有什么区别?

【问题讨论】:

  • 嘿@variable,它回答你的问题了吗?
  • 嗨 Nandan,您的示例正在解释维度表之间的 Apply security filter in both directions 用例。我的问题是问这个设置关于事实和维度之间关系的目的是什么。

标签: powerbi powerbi-desktop


【解决方案1】:

为了使 RLS 在 Dim 表的多个实例中有效,而不是在我们创建的表中显式地生效,我们必须在两个方向上显式地应用安全过滤器。

例如: 考虑我有 2 个 DIM 表: a) 雇员 b) 公司

还有 2 个事实表: a) 员工工资 b) 销售

公司与销售额之间存在 1:m 关系 Employee和EmployeeSalary之间的1:1关系 以及公司和员工之间的1:m关系

假设 RLS 基于登录应用于 Employee 表。

如果没有应用双向过滤器,如果按公司切片销售和员工工资;结果将是:

  1. 对于薪水,员工只能看到他的薪水
  2. 而他将能够看到所有公司的销售额

如果存在双向过滤器,那么用户将只能看到他所标记的公司的销售额。

希望这能阐明双向过滤器的需求。

以下链接将提供详细说明:

https://asankap.wordpress.com/2018/05/28/how-does-row-level-security-works-when-there-is-a-bi-directional-filter-in-power-bi-tabular-model/

【讨论】:

  • 你已经回答了双向过滤器的使用。但是您还没有回答“双向应用安全过滤器”。假设在您的示例中设置了双向,那么登录的员工将只能看到他的公司和他公司的销售额。那么设置或不设置“双向应用安全过滤器”有什么影响呢?
  • 嘿@variable,双向应用安全过滤器意味着 RLS 将应用于与设置 RKS 的值直接或间接相关的所有数据。由于在这种情况下,RLS 位于 user 上,因此与 user 直接或间接相关的所有值都将被过滤掉。就像 Employee 和 Employee 薪水是直接相关的:所以不管双向过滤器,数据都会被过滤掉。
  • 但是员工和销售是通过公司关联的。因此,如果未启用双向过滤器;用户将能够查看所有销售数据,但启用双向安全过滤器将确保将 RLS 应用于所有关系,从而允许用户查看他自己公司的销售。希望这可以澄清。 asankap.wordpress.com/2018/05/28/…此链接有详细的屏幕截图和适当的示例,以便更清晰地显示属性
  • 我已阅读此链接,示例非常好。我想问你 - both directions 是否意味着双向过滤关系的双方。还是应用 RLS 的维度的两侧?
  • 嗨 Nandan,您的示例正在解释维度表之间的 Apply security filter in both directions 用例。我的问题是问这个设置关于事实和维度之间关系的目的是什么。
猜你喜欢
  • 2020-12-05
  • 2015-04-01
  • 2016-05-07
  • 2016-05-07
  • 2017-03-18
  • 2017-03-18
相关资源
最近更新 更多