使用静态方法配置行级别安全性
作为数据建模人员,您可以通过创建一个或多个角色来设置 RLS。 角色在模型中具有唯一名称,并且通常包含一个或多个规则。 规则通过使用 Data Analysis Expressions (DAX) 筛选表达式对模型表强制执行筛选。
行级别安全性 (RLS) 中的静态方法使用 DAX 筛选器中的固定值,而动态方法则使用 DAX 函数。
注意
默认情况下,数据模型没有角色。 没有角色的数据模型意味着用户(有权查询数据模型的人员)有权访问所有模型数据。
可以定义不包含任何规则的角色。 在这种情况下,角色提供对所有模型表的所有行的访问权限。 此角色设置将适合允许查看所有数据的管理员用户。
RLS 涉及多个配置步骤。 首先在 Microsoft Power BI Desktop 中创建报表,其中包括导入数据、应用星形架构设计原则和创建报表视觉对象。 然后,使用 DAX 设置 RLS 角色,并在 Power BI Desktop 中对其进行测试。 配置角色后,将报表部署到 Microsoft Power BI 服务,将成员部署到角色,并在 Power BI 服务中进行最终测试。
在 Power BI Desktop 中创建报表
按照典型步骤在 Power BI Desktop 中创建报表。 使用 Microsoft Power Query 检索和清理数据。 然后,使用建模选项卡确认表之间存在关系。我们建议您应用星形架构设计原则来生成包含维度表和事实表的模型。 通常需要设置 Power BI 以强制执行筛选维度表的规则,从而允许模型关系将这些筛选器有效地传播到事实表。
下一步是创建 Power BI 报表。
请注意上表中如何包含所有销售信息的行,包括所有部门。 您需要对可见性进行限制,以便只有特定部门的员工才能看到自己的销售信息。
在 Power BI Desktop 中创建 RLS 角色
Power BI 行级别安全性 (RLS) 使用 DAX 来控制谁可以查看哪些数据。 将其视为始终向适当的用户添加另一个筛选器,无论用户在 Power BI 报表上选择什么筛选器、切片器或交互。
若要在 Power BI Desktop 中创建 RLS 角色,请选择建模选项卡,然后选择管理角色。 在管理安全角色页面上,为每个部门创建一个角色,然后向其添加筛选器或 DAX 表达式。 例如,您可以创建一个名为游戏的角色,然后添加筛选器或 DAX 表达式 [Department] = "Game"。 然后,每当该角色的成员与报表交互时,Power BI 就会将该筛选器添加到其交互中,从而限制他们看到的内容。
在等号右侧的筛选器中使用固定值(在本例中,为“游戏”)。 这样做的目的是,如果需要添加类别,则需要在 DAX 表达式中创建一个包含新值的新角色。
DAX 筛选器应用于用户使用的每个交互、切片器和筛选器。 如果 DAX 筛选器性能不佳,则会对用户体验产生负面影响。 因此,使 DAX 筛选器尽可能简单。
在 Power BI Desktop 中测试角色
可以通过选择建模选项卡,然后选择以角色身份查看来验证筛选器是否正常工作。
在以角色身份查看窗口中,选择游戏角色。 现在,就像您已在使用该角色一样呈现报表,而您只会看到“游戏”部门中包含的记录。
您可以通过再次选择以角色身份查看,然后选择无来撤消此筛选器。
将报表部署到 Power BI 服务
您可以通过选择主页选项卡上的发布按钮,然后选择工作区来将报表部署到 Power BI 服务。
将成员添加到 Power BI 服务中的角色
若要将成员添加到 Power BI 服务中的角色,请转到 Power BI 服务中的工作区。 找到您使用与报表相同的名称创建的语义模型。 选择省略号 (...) 按钮,然后选择安全。
在行级别安全性屏幕中,您可以将 Microsoft Entra ID 用户和安全组添加到安全角色。 将成员添加到此角色后,系统将向这些成员应用您之前定义的 DAX 筛选器。 如果成员未添加到该角色中,但他们有权访问该报表,则 RLS 将不会向他们应用筛选器。 可以将“游戏”部门中的三名人员添加到游戏角色。 现在,在这些成员登录后,他们将仅看到包含适用于他们的数据的报表。
注意
RLS 仅适用于工作区中的观看者。 分配为管理员、成员或参与者角色的工作区成员具有语义模型的编辑权限,因此 RLS 不适用于他们
提示
如果可能,最好将角色映射到安全组。 这样,将减少映射,并且您可以将组成员身份管理委托给网络管理员。
在 Power BI 服务中测试角色
通过在 Power BI 服务中测试角色,您可以模拟并验证行级别安全性 (RLS) 配置是否按预期工作。 在行级别安全性屏幕上选择游戏角色旁边的省略号 (...),然后选择以角色身份测试。
此选择将按照就像您已是 Power BI 服务中的角色成员一样来显示报表。
现在,您已经了解了如何使用静态方法配置 RLS,让我们来了解如何动态配置。
 
              
               
              
               
              
               
              
              