首页 > 解决方案 > 什么是“双向应用安全过滤器”(正常与安全过滤器)?

问题描述

我有用户使用用户 ID、用户名、用户邮件的暗表

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

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

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

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

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

标签: powerbipowerbi-desktop

解决方案


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

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

和 2 个事实表:a) 员工薪水 b) 销售额

Company 和 sales 是 1:m 关系,Employee 和 EmployeeSalary 是 1:1 关系, Company 和 Employee 是 1:m 关系

假设 RLS 基于 login 应用于 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-模型/


推荐阅读