设置或修改对象级安全性 (OLS)

通过调整针对表或列定义的角色或对象权限来更改 OLS。 对象权限是 TOM 属性,可通过 Object Level Security 属性查看,其取值可以是 Default(不启用 OLS;功能上类似于 Read)、Read 或 None。 OLS 与 RLS 的不同之处在于:它不会筛选数据,而是阻止该对象__及其所有依赖项__的执行。这意味着,任何引用 Object Level Security 设置为 None 的对象的关系或度量值,在计算时都会返回错误。
- 关于数据安全与 RLS/OLS: RLS 与 OLS 的功能概览。
- 修改/设置 RLS 配置: 如何在 Dataset 中配置 RLS。
- 修改/设置 OLS 配置(本文): 如何在 Dataset 中配置 OLS。
- 使用模拟身份测试 RLS/OLS: 如何使用 Tabular Editor 轻松验证数据安全。
在 Tabular Editor 3 中配置 OLS
下面概述了对现有 OLS 可能进行的一些常见修改。 此外,下文还介绍了针对非典型对象(度量值、计算组)配置 OLS 的策略:
1。 删除角色
要从模型中删除角色,你可以直接按下 Del 键删除角色对象,或右键单击并选择“删除”。

Note
只要至少还存在一个其他角色,分配到此角色的所有用户将无法再查看模型数据。
2。 添加新角色
要向模型添加角色:
- 右键单击“Roles”对象类型: 这将打开对话框,以便你创建新角色。
- 选择“Create” > “Role”: 为新角色命名。

- 将
Model Permission属性设置为Read: 这是 Power BI Dataset 所必需的设置。

- 设置权限: 按下文说明设置 RLS 表格权限和/或 OLS 对象权限。
3。 移除 OLS
要从模型中移除 OLS,必须将所有列和表在所有角色下的 Object Level Security 属性都配置为 Default。 要从模型中移除数据安全性,必须删除所有角色。

Note
删除所有角色后,只要用户对 Dataset 拥有 Read 权限,就能查看所有数据。
4。 设置或更改 OLS
对于列和表,设置或修改 OLS 非常简单。 只需选择对象并找到 Object Level Security 属性,然后使用下拉列表将该属性更改为所需值即可。

---
5。 将 OLS 与 RLS 结合使用
要将 RLS 与 OLS 成功结合使用,需要让模型设计与数据安全/访问管理策略相互匹配。 由于 RLS 与 OLS 无法跨角色组合,这意味着如果你计划同时实施 RLS 和 OLS,那么用户只能被分配到一个角色。
6。 为度量值配置 OLS
默认情况下,OLS 仅适用于列、表及其依赖对象;度量值没有 对象级安全性 属性。 不过,由于 OLS 也会应用于依赖对象,因此可以通过断开连接的表或计算组来设计让 OLS 作用于度量值的方案。 要实现这一点,需要修改度量值的 DAX,使其在计算时评估一个已配置 RLS 的列或计算组。 如果该对象的 对象级安全性 属性为 None,那么该度量值就无法计算。
另请参阅 SQLBI 的这篇关于隐藏度量值的文章,其中对这种方法做了详细说明。