Table of Contents

什么是数据安全?

数据安全 Visual 摘要


已发布的 Dataset 可通过 行级安全性 (RLS)(适用于表)或 对象级安全性 (OLS)(适用于表和列)来配置数据安全。 数据安全旨在确保用户只能查看和使用其获准访问的数据——无论是在已发布的 Report 中,还是在构建自助式数据解决方案时。 为此,系统会将用户分配到已配置 RLSOLS 规则的 角色 中;这些规则会对由 Report 以及 Power BI Desktop、Excel 等客户端工具生成的查询进行 FILTER(RLS)限制(OLS)

虽然并非强制,但数据安全是健壮、安全且合规的企业级 BI 解决方案中的常见功能。 本系列将从功能角度介绍数据安全,以及它在表格建模与 Tabular Editor 中的应用。

在 Tabular Editor 中,可以轻松配置、修改并测试 RLS 和 OLS。


为什么要配置行级安全性或对象级安全性?
配置 RLS 或 OLS 可为您的模型和 Report 带来益处:
  • 通过确保用户只能看到其有权访问的数据,降低风险并强化治理。
  • 使用集中式角色表配置动态 RLS,以确保一致性并便于轻量维护。
  • 精细控制可查询的数据和对象范围。

  • 它是如何工作的?

    数据安全在模型层级生效。 按以下步骤进行配置:

    1。 创建角色:

    角色 是一组拥有相同权限或数据安全逻辑的用户。 此处的 用户 通过其邮箱地址识别,也可以使用 Azure AD 安全组 的邮箱地址进行识别。 角色示例:

    • 同一地区、团队或部门的用户(EMEAUA Sales Team)。
    • 具有相同角色、职能或访问级别的用户(Key Account ManagersSC Clearance)。
    • 按其他业务逻辑或任意规则定义的组(ExternalsBuild Users)。
    Data Security Create Role
    图 1: 在 Tabular Editor 中,角色是顶级对象类型之一(类似于表、关系等)。
    Important

    在 Tabular Editor 中创建新角色后,必须先将 Model Permission 属性设置为 Read

    2。 指定规则:

    根据安全类型,规则 会按每个角色应用到一个或多个对象上:

    • RLS 表格权限: DAX 表表达式——返回计算结果为 True 的行。 这些权限会沿着关系传播;模型设计对良好的 RLS 规则至关重要。
    Data Security Create Role
    图 2: 在 Tabular Editor 中,RLS 的表格权限显示在该角色下。 右键单击角色,然后选择 '添加表分区...',即可创建新的表格权限。
    Data Security Create Role
    图 3: 选择某个表格权限时,可在表达式编辑器中查看其 DAX 表达式。
    • OLS 对象权限: 这些权限既适用于主要对象,也适用于所有下游依赖对象。
      • Read(可查看/查询)
      • None(不可查看/查询)
      • Default(未配置策略;等同于 Read
    Data Security Create Role
    图 4: 在 Tabular Editor 中,可在“属性”窗口中“翻译、透视、安全”标题下访问对象权限。

    3。 将用户分配到角色:

    在 Dataset 中完成配置后,需要将用户添加到其对应的角色中。

    • Power BI: 可通过 Tabular Editor 或 Power BI/Fabric 服务 分配角色;操作入口在 Workspace 的 Dataset 设置中:详见此处
    • SSAS / AAS: 在角色对象上右键单击并选择“编辑成员...”,即可分配角色成员……
    • Power BI Embedded: 你必须生成嵌入令牌

    你可以通过 Tabular Editor 按以下方式将用户/组添加到角色中或从角色中移除:

    1. 右键单击 角色,选择 编辑成员……
    Data Security Create Role
    图 7:通过右键单击某个角色并选择 '编辑成员...',即可将用户分配到角色中
    1. 单击“Add Windows AD Member”按钮上的__下拉按钮__,然后选择__Azure AD Member__:
    Data Security Create Role
    图 8:对于 AAS/SSAS 模型,可在 '编辑成员...' 对话框中添加用户。
    1. Member Name 属性中指定 Azure AD 用户标识(通常是用户的电子邮件地址)。
    2. 单击 确定
    3. 保存 模型。
    Important

    如果你的组织在 SQL Server Analysis Services 中使用本地 Active Directory,则需要使用 Windows AD Member 选项,而不是 Azure AD Member

    Note

    建议使用 Azure Active Directory 组 来管理数据安全与访问控制。
    推荐采用这种方式,以便集中管理安全性和用户分群。

    4。 为用户开通 Dataset 访问权限:

    Power BI: 必须根据使用场景为用户授予 Dataset 访问权限。

    • App Audience: 将用户/其 Azure AD 组添加到相应的 App Audience
    • Workspace Viewer: 将用户/其 Azure AD 组添加为 Workspace Viewer
    • Dataset 读取者: 可通过 Dataset 或其依赖项向用户 / 其 Azure AD 组授予 Dataset 专属权限(即。 Report)。
    Warning

    被分配为管理员、成员或参与者 Workspace 角色的用户对 Dataset 拥有___写入权限___。 因此,RLS 和 OLS 等数据安全机制不会对具有这些角色的用户进行数据筛选或阻止访问。

    如果用户是管理员、成员或参与者,他们将能够看到所有数据

    在合理范围内,尽量通过 Power BI 应用来分发和管理权限。

    5。 验证安全性:

    只有在添加用户组并授予其访问权限后,才能通过用户模拟来测试 RLS 和 OLS。 可通过以下方式验证安全性:

    Data Security Create Role
    图 5:使用 Tabular Editor 通过用户模拟来测试数据安全性,是最简单的方法。 任何数据查询功能 (DAX Queries, Pivot Grid, Preview Data) 均可使用“Impersonation”选项.
    Note

    要通过用户模拟验证数据安全性,必须同时满足以下条件:

    • 必须为用户分配一个角色。
    • 用户必须对 Dataset 具有读取权限。
    • 用户必须对 Dataset 具有__构建权限__。
    Data Security Create Role
    图 6:演示在 Tabular Editor 中使用用户模拟进行 RLS 测试。 图中展示了在 (A) 数据预览、(B) DAX 查询和 (C) Pivot Grid 中进行测试。
    Important

    使用 Tabular Editor 3 通过用户模拟测试数据安全性,仅适用于托管在 Power BI Datasets 服务中的 Dataset。 TE3 Desktop 许可证无法使用此功能。 这是因为角色是在 Power BI 服务中分配的。


    效果如何?

    根据数据安全性的设计与配置方式不同,用户体验可能有所差异。 以下是在 Dataset 中实施 RLS 和/或 OLS 的常见场景示例

    点击选项卡查看示例,并了解每个示例的说明:


    未启用安全性时,任何有权访问该 Dataset 的人都能看到全部数据。

    唯一的限制在于他们是否有权访问这些 Report / Dataset。

    无安全性

    在该示例中,Jack 和 Janet 都能看到全部数据。


    硬性限制

    某些 Report 或 Data model 功能在启用 RLS 或 OLS 后将无法使用。 例如:

    1. RLS 限制

    2. OLS 限制

      • 合并单独的 RLS 角色和 OLS 角色(如上所述)
      • 问答功能
      • 快速见解
      • 智能叙述
      • Excel 数据类型库

    延伸阅读与参考资料

    如需进一步深入了解数据安全,请参阅以下资料:

    1. Power BI 安全白皮书
    2. Power BI 文档 - 安全性
    3. Analysis Services 文档 - 对象级安全性
    4. Power BI 实施规划 - 安全性
    5. (相关) Power BI 实施规划 - 信息保护与数据丢失防护(DLP)