Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

v-stephen-msft

如何在 RLS 约束条件下进行涉及总值的计算

引言:

在某些情况下,我们需要使用 RLS 来限制用户对某些数据的访问,但这可能与某些涉及整体数据的计算(如排名)相冲突。在本文中,我将向您介绍如何实现这一目标。

 

示例数据:

样本数据中有两张表。

1 是评分表,包括员工和渠道。

vstephenmsft_0-1723167996594.png

2 是员工表,包括员工和电子邮件。

vstephenmsft_1-1723168029553.png

解决方法:

 

如果我们直接在涉及总体值计算的表格中使用 RLS,结果往往是错误的。

例如

我们对员工的得分进行了排名,结果如下:

下面是排名度量值: 

 

 

排名 = 
RANKX (
    FILTER ( ALL ( '评分' ), '评分'[渠道] = MAX ( '评分'[渠道] ) ),
    '评分'[评分],
    MAX ( '评分'[评分] ),
    DESC,
    DENSE
)

 

 

vstephenmsft_0-1723169178669.png

如果我们直接使用 RLS,就会受到 RLS 的限制,无法访问所有值。因此,结果并不正确。

以下是设置 RLS 的步骤:

1. "建模 "选项卡选择 "管理角色"

vstephenmsft_1-1723169200199.png

2. "管理安全角色 "窗口中,选择 "新建"

vstephenmsft_2-1723169221305.png

 

3.在角色下,提供角色名称。这里我们起名为RLS。

4.在 "表 "下,选择要应用 DAX(数据分析表达式)规则的表。

5.在表格筛选器 DAX 表达式框中,输入 DAX 表达式。

vstephenmsft_3-1723169314289.png

 

创建角色后,在 Power BI Desktop 中测试角色的结果。

1.从 "建模 "选项卡中,选择 "通过以下身份查看"。

vstephenmsft_4-1723169372159.png

2.出现 "以角色身份查看 "窗口,您可以在此查看已创建的角色。选择一个已创建的角色。然后选择确定来应用该角色。

vstephenmsft_5-1723169409148.png

3.选择“确定”。

vstephenmsft_6-1723169428898.png

这是我们预期的结果:

vstephenmsft_7-1723169440619.png

根据我们的描述,以下是我的解决方案步骤。

1.创建一个新表:

 

 

总结评分 = SUMMARIZE('评分','评分'[评分],'评分'[渠道])

 

 

vstephenmsft_8-1723169470146.png

注意:请避免在任何其他地方使用此表,因为它可能会暴露 RLS 数据。

2. 由于总结评分表仅用于 DAX 计算,不用于创建任何可视效果,因此我们将其隐藏:

vstephenmsft_10-1723169500905.png

注:总结评分表与其他表格之间没有关系。

vstephenmsft_11-1723169549293.png

3.在员工表中创建 RLS。

vstephenmsft_12-1723169609777.png

4. 由于总结评分表与其他表之间没有关系,因此它不会受到 RLS 的影响,而员工表的 RLS 会传递给评分表,这将导致评分表在受到 RLS 限制后保留数据。
现在,您可以对员工的评分进行排名,这是度量值:

 

 

员工排序 = 
VAR _a =
    FILTER ( ALL ( '总结评分' ), [渠道] = MAX ( '评分'[渠道] ))
VAR _b =
    ADDCOLUMNS ( _a, "排序", RANKX ( _a, [评分]) )
RETURN
    MAXX ( FILTER ( _b, [评分] = MAX ( '评分'[评分] ) ), [排序] )

 

 

总结:
在某些需要计算总体值但需要使用 RLS 的情况下,可以使用类似的方法进行计算。
希望这篇文章能对有类似问题的人有所帮助。   

 

作者:唐杰

指导:Ula&Kerry