我有一个名为公司ID的专栏,其中包含各种不同雇员的合作伙伴,我需要一个DAX查询,它将向公司ID提供数据A / Q,假设公司内部有3名雇员,而且每个人都有有一个公司1然后我他们应该能够看到彼此的报告,但他们无法看到comanyid 2和3的报告,这是如何实现的?
我知道我可以通过为每个companyid创建不同的角色来实现这一目标,但是如果我希望将其构建为一个特定的角色,那么如何实现呢?
答案 0 :(得分:2)
您要问的是实施动态行级安全性。
用户表:包含用户详细信息的表以及我们将应用安全性的字段(此处为电子邮件字段)。
公司表:包含公司数据的表。
用户公司网桥:包含权限详细信息的桥接表,例如用户x是公司y和z的成员。
公司数据表:要过滤的公司的度量或交易信息。
定义RLS(行级安全性):
在建模中 - >管理角色,通过此DAX查询在用户表的电子邮件上创建新角色,该查询返回登录用户的电子邮件ID。
[Email] = userprincipalname()
<强>结束写入:强>
转到PowerBI服务 - &gt;数据集 - &gt;安全性并将用户添加到创建的角色中。
测试实施:
通过这种方式,只需修改存储所有权限详细信息的桥接表,即可轻松维护角色和安全性。