Power BI 中的 RLS(行级别安全性)

2024年9月20日 | 阅读 9 分钟

Power BI 中一项关键功能是行级别安全性 (RLS),它可以帮助企业在细粒度级别管理数据访问。通过 RLS,您可以根据预先设定的标准(如用户角色或属性)限制用户对数据集中特定行的访问。这确保了用户只看到对他们重要的信息,并保护了敏感或私有数据。

行级别安全性的重要性

RLS 非常重要,原因有很多,这些原因都增强了 Power BI 数据管理的整体有效性和安全性。

RLS In Power BI
  1. 数据隐私和合规性:在当前的监管环境下,组织必须遵守严格的数据隐私法规和规定,包括 GDPR、HIPAA 和 CCPA。通过限制对敏感数据的访问仅限于批准的个人或角色,RLS 的实施有助于企业遵守监管要求。
  2. 增强数据保护:RLS 确保用户只能访问他们被明确允许查看的数据,从而为您的 Power BI 报表和仪表板增加了额外的保护层。因此,数据泄露或未经授权访问的风险会降低。
  3. 优化用户体验:RLS 可以根据特定用户的特征或角色来调整 Power BI 用户体验。通过为用户提供与其角色或兴趣领域相关的数据,组织可以提高用户满意度和生产力。
  4. 支持多租户:RLS 支持基于租户或部门的数据隔离,确保每个组只看到各自的数据。这对于从单个 Power BI 安装为众多客户或部门提供服务的企业非常有用。
  5. 可扩展性和性能:RLS 通过在行级别过滤数据,有助于 Power BI 报表和查询更顺畅地运行,尤其是在处理大型数据集时。这确保了用户不会遇到任何性能问题或延迟,能够及时获得他们所需的数据。

现实世界中的例子

Power BI 的行级别安全性 (RLS) 功能已在各种行业中得到应用,以解决每个行业特有的需求和挑战。以下是一些特定行业的示例:

  1. 医疗保健:RLS 在确保遵守 HIPAA 等患者隐私法方面发挥着关键作用。医疗组织可以使用 RLS 来限制患者记录的访问,根据其医务人员的职责和任务进行区分。例如,医生可以访问所有患者记录,而行政人员可能只能查看部分数据。
  2. 金融:为了防止未经授权的访问,金融组织必须保护他们处理的敏感金融数据。RLS 使银行和金融机构能够根据账户所有权、部门归属或法律要求等变量来管理对客户金融信息的访问。
  3. 零售:零售行业的企业通常拥有复杂的层级结构,涉及多个部门以及对客户记录、库存信息和销售数据的不同访问级别。借助 RLS,零售商可以根据产品类别、员工职责或门店位置来细分数据访问。例如,区域经理可能只能访问其所在区域特有的销售信息。
  4. 制造业:RLS 可用于管理制造业中的供应链信息、质量指标和生产数据访问。制造商可以通过考虑供应商合同、职位角色和生产线等变量来限制对机密信息的访问。这确保了专有信息和知识产权免受未经授权的分发。

案例研究

许多组织已成功采用了 Power BI 的行级别安全性,提高了用户满意度、合规性和数据安全性。以下是一些成功案例:

  1. 全球零售连锁店:跨国零售连锁店 WorldMart Superstores 部署了 RLS,根据地理区域和门店位置限制对销售数据的访问。这增强了数据安全性和机密性,并通过限制对每个门店管理层相关的销售数据的访问,实现了更具针对性的门店级别决策。
  2. 医疗保健提供商网络:医疗保健提供商网络 MediCare Connect Health Services 使用 RLS 来遵守 HIPAA 法规并保护患者隐私。通过实施基于角色的访问限制,确保只有授权的医务人员才能访问患者记录,该组织降低了数据泄露的风险并维护了患者信任。
  3. 金融服务公司:Horizon Financial Solutions 采用 RLS 来限制对敏感金融数据的访问,并遵守 GDPR 和 Dodd-Frank 等法律法规。通过实施基于用户角色和账户所有权的动态安全过滤器,该公司增强了数据治理,并降低了不合规罚款的可能性。

这些真实世界的例子表明了行级别安全性在解决特定行业问题和实现组织目标方面的灵活性和成功性。通过将 RLS 与 Power BI 集成,组织可以改善用户体验、数据安全性和合规性。这最终将带来更好的决策和业务成果。

Power BI 中一项关键功能是行级别安全性 (RLS),它使企业能够进行细粒度的数据访问管理。通过部署 RLS,组织可以确保用户只看到与其角色或部门相关的材料,从而提高数据安全性和合规性。在下一节中,我们将深入探讨如何在 Power BI Desktop 和 Power BI Service 中应用 RLS。

1. 创建报表

RLS In Power BI
  • 在 Power BI Desktop 中创建报表是实现 RLS 的第一步。这包括从各种来源(包括数据库、Excel 文件和 Web 服务)导入数据并进行适当的格式化以供分析。Power BI Desktop 提供了强大的数据建模和塑形功能,例如 Power Query。
  • 导入数据后,使用“建模”选项卡创建表之间的关系至关重要。关系描述了来自不同表的数据之间的连接。建立关系可确保在 RLS 环境中基于用户角色或属性的筛选正常运行。

2. 使用 Power BI Desktop 创建 RLS 角色

  • 构建报表后,下一步是使用 Power BI Desktop 设置 RLS 角色。管理员可以使用 RLS 角色和预先设定的标准来限制谁有权访问数据。可以为不同的部门、用户组或任何其他相关细分创建角色。
  • 使用 Power BI Desktop 创建 RLS 角色的步骤如下:
  • 点击“建模”选项卡,然后选择“管理角色”。
    RLS In Power BI
  • 要创建新角色,您需要点击“创建”按钮。
    RLS In Power BI
  • 为角色指定一个有意义的名称,例如“销售”、“营销”或“财务”。
    RLS In Power BI
  • 创建 DAX 表达式,该表达式将角色的条件应用于过滤数据。例如,如果角色属于“类别”部门,则 DAX 表达式可用于在“类别”值为“家具”时过滤数据。
    RLS In Power BI

3. 检查 Power BI Desktop 角色

  • 定义角色后,对其进行测试以确保其按预期工作至关重要。“View as Roles”功能允许您测试数据可见性并模拟不同的用户角色。
  • 测试 Power BI Desktop 角色的方法:
  • 点击“建模”选项卡,然后选择“按角色查看”。
    RLS In Power BI
  • 从列表中选择一个要模拟的角色。
    RLS In Power BI
  • 检查报表并确认您选择的角色已限制数据可见性。
    RLS In Power BI
  • 测试角色可确保 RLS 的实施满足组织的用户访问规则和安全要求。

4. 将报表发布到 Power BI Service

  • 在 Power BI Desktop 中开发报表并测试角色后,就可以将其发布到 Power BI Service 了。Power BI Service 是一个基于云的平台,允许用户共享、协作并访问 Power BI 仪表板和报表。

5. 发布报表

  • 在 Power BI Desktop 中,点击“发布”按钮。
  • 选择 Power BI Service 中的目标工作区。
  • 将报表发布到 Power BI Service 后,授权用户即可访问。将报表部署到 Power BI Service 使他们能够轻松协作,并从任何设备、任何地点访问信息。

6. 在 Power BI Service 中添加角色成员

  • 管理员可以在 Power BI Service 中添加成员到每个角色并管理 RLS 角色。哪些用户可以访问特定数据取决于他们的角色或属性,这通过将个人添加到角色来确定。
  • 转到报表所在的工作区。
  • 点击省略号 (...) 并选择“安全性”以访问安全设置。
    RLS In Power BI
  • 将具有 Microsoft Entra ID 的用户或安全组分配给相应的 RLS 角色。
  • 当用户访问 Power BI Service 中的报表时,已添加到角色的用户将只能看到由该角色 DAX 表达式允许的数据。
  • 通过将成员分配给角色,您可以提高数据安全性并确保只有授权用户能够访问数据,从而增强合规性。
    RLS In Power BI

7. 检查 Power BI Service 角色

  • 在 Power BI Service 中分配成员后,测试这些角色以确认每个角色的数据可见性都得到了适当的强制执行至关重要。

8. 测试角色

  • 在行级别安全性页面上,选择选定角色旁边的省略号 (...)。
  • 选择“按角色测试”。
    RLS In Power BI
  • 检查报表并确认模拟角色正在限制数据视图。
  • 在 Power BI Service 中测试角色的目的是确保 RLS 的实施满足组织的安全性需求,并在生产环境中无缝运行。
  • DAX 筛选器表达式是在配置行级别安全性时要采取的过程中的一个关键区别,动态方法与静态方法相同。

让我们研究一下这些方法:

9. 创建报表

  • 在 Power BI Desktop 中,首先创建一个报表,导入所需数据,并建立相关表(例如,员工和销售)之间的关系。

10. 创建动态 RLS 角色

  • 要创建 RLS 角色,请导航到“建模”选项卡并选择“管理角色”。
  • 使用动态 DAX 筛选器表达式创建一个角色,而不是多个角色。
  • 在筛选器表达式中使用 `userprincipalname()` DAX 函数,将当前登录用户的电子邮件地址与员工表中存储的电子邮件地址进行比较。
    RLS In Power BI
  • 通过使用“按角色查看”选项模拟不同的用户场景来测试动态 RLS 角色的功能。
  • 确保用户只能访问与其电子邮件地址相关的销售信息。

11. 将报表发布到 Power BI Service

  • 当报表准备就绪后,将其发布到 Power BI Service。

12. 检查 Power BI Service 中的角色

  • 要测试动态 RLS 角色,请通过 Power BI Service 访问报表。
  • 确保用户只能看到与其电子邮件地址相关的销售信息。

这种动态方法通过配置行级别安全性以根据用户的电子邮件地址自动调整,从而无需为每个用户创建单独的角色。通过确保每个用户只能访问相关数据,消除了持续的安全配置更新的需要,并简化了维护。

行级别安全性 (RLS) 是 Power BI 的一项关键功能,它让您能够控制用户在给定报表中可以看到的数据。其主要目的是限制特定个人的数据访问,例如限制经理只能访问其直接下属的薪酬信息。通过结合使用 Power BI Desktop 和 Power BI Service,可以实现 RLS,提供全面的数据安全解决方案。

一旦为特定的安全角色定义了 DAX 公式,就可以部署报表,并将用户分配到该角色。这个简单的过程可确保在整个组织中统一实施正确的安全控制。

Power BI 中 RLS 的局限性

虽然 Power BI 的行级别安全性 (RLS) 是实现高度细粒度访问控制的强大工具,但与其他任何功能一样,它也有一些限制和需要注意的事项。以下是在 Power BI 中使用 RLS 时的一些重要限制和注意事项:

  1. 角色和规则的重新创建:在 Power BI Desktop 中,您必须重新创建之前在 Power BI Service 中创建的任何角色和规则。这可能是一个繁琐的过程,需要密切协作以确保设置之间的一致性。
  2. 语义模型创建:RLS 只能为 Power BI Desktop 语义模型定义。要为其启用 RLS,您必须先将 Excel 创建的语义模型转换为 Power BI Desktop (PBIX) 文件。由于这个限制,从基于 Excel 的模型迁移到 Power BI 的公司可能需要额外的步骤。
  3. 服务主体:RLS 不适用于使用服务主体作为最终有效身份的应用程序,并且不能将服务主体添加到 RLS 角色。此限制可能会影响那些在 Power BI 系统中严重依赖服务主体进行授权和身份验证的组织。
  4. 支持的连接类型:RLS 仅兼容导入和 DirectQuery 连接。本地模型以不同方式处理到 Analysis Services 的实时连接。使用不同连接类型的组织可能需要考虑替代的安全措施。
  5. 测试限制:在使用启用了单一登录 (SSO) 的 DirectQuery 模型时,“按角色测试”或“按角色查看”功能可能会受到限制。此外,此功能可能不适用于分页报表,并且可能仅显示来自语义模型工作区的报表。高度依赖这些测试功能的企业可能不得不寻找其他方法来确认 RLS 设置。

通过了解这些限制和注意事项,组织可以更成功地规划和部署 Power BI 中的 RLS,以满足其安全需求,同时避免潜在的障碍和问题。