如何为RLS创建Dax?

时间:2018-02-28 13:54:27

标签: powerbi

我有一个名为公司ID的专栏,其中包含各种不同雇员的合作伙伴,我需要一个DAX查询,它将向公司ID提供数据A / Q,假设公司内部有3名雇员,而且每个人都有有一个公司1然后我他们应该能够看到彼此的报告,但他们无法看到comanyid 2和3的报告,这是如何实现的?

我知道我可以通过为每个companyid创建不同的角色来实现这一目标,但是如果我希望将其构建为一个特定的角色,那么如何实现呢?

1 个答案:

答案 0 :(得分:2)

您要问的是实施动态行级安全性。

<强>型号: enter image description here

用户表:包含用户详细信息的表以及我们将应用安全性的字段(此处为电子邮件字段)。

公司表:包含公司数据的表。

用户公司网桥:包含权限详细信息的桥接表,例如用户x是公司y和z的成员。

公司数据表:要过滤的公司的度量或交易信息。

定义RLS(行级安全性):

在建模中 - &gt;管理角色,通过此DAX查询在用户表的电子邮件上创建新角色,该查询返回登录用户的电子邮件ID。

[Email] = userprincipalname()

<强>结束写入:

转到PowerBI服务 - &gt;数据集 - &gt;安全性并将用户添加到创建的角色中。

测试实施:

  1. 转到pbix文件的“建模”选项卡。
  2. 点击查看为角色。
  3. 选中其他用户复选框并输入电子邮件ID,然后检查个人资料 复选框。 现在您可以看到已过滤的数据。
  4. 通过这种方式,只需修改存储所有权限详细信息的桥接表,即可轻松维护角色和安全性。