模型作者借助对象级安全性 (OLS) 可以阻止报表查看者访问特定的表或列。 例如,可以将包含个人数据的列仅限某些查看者查看和交互。 此外,还可以限制对象名称和元数据。 这增加了一层安全性,可防止没有适当的访问级别的用户发现业务关键或敏感的个人信息,例如员工或财务记录。 在没有所需权限的查看者看来,受保护的表或列就像不存在一样。
创建使用 OLS 的报表
与行级安全性 (RLS) 一样,OLS 也是在模型角色中定义的。 可以使用表格模型定义语言(TMDL)视图或外部工具(如 表格编辑器)创建 OLS 定义。
使用 TMDL 视图配置对象级安全性
TMDL 视图允许你使用 TMDL 脚本直接在语义模型中定义 OLS 规则,因此不需要外部工具。
在创作环境中打开 TMDL 视图。
新建一个 TMDL 脚本选项卡,并编写一个
createOrReplace脚本,以定义一个角色,并为要保护的表或列指定适当的metadataPermission。- 无:强制实施 OLS,表或列将隐藏在该角色中。
- 读取:表或列对该角色可见。
若要保护整个表,请执行以下命令:
createOrReplace
role CategoriesOLS
modelPermission: read
tablePermission Customers
metadataPermission: none
若要保护特定列,请:
createOrReplace
role CategoriesOLS
modelPermission: read
tablePermission Customers
columnPermission Address
metadataPermission: none
在应用 之前使用“预览” 按钮查看对语义模型所做的更改。
选择 “应用 ”按钮以执行 TMDL 脚本,并将角色定义应用于语义模型。
将语义模型发布到Power BI 服务。
在Power BI 服务中,选择语义模型的“更多选项”(...)菜单。 选择 “安全 ”页,并将成员或组分配到相应的角色。
使用表格编辑器配置对象级安全性
在 Power BI Desktop 中,创建定义 OLS 规则 的模型 和角色。
在 “外部工具” 功能区上,选择 “表格编辑器”。 如果未看到“表格编辑器”按钮,请安装该程序。 打开时,表格编辑器会自动连接到模型。
在 “模型 ”视图中,选择 “角色”下的下拉菜单。 你在步骤 1 中创建的角色将会显示。
选择要为其启用 OLS 定义的角色,然后展开“表权限”。
将表或列的权限设置为“无”或“读取”。
无:强制实施 OLS,表或列将隐藏在该角色中。 读取:表或列对该角色可见。
为角色定义 OLS 后,保存更改。
在 Power BI Desktop 中,将语义模型发布到 Power BI 服务。
在 Power BI 服务中,通过选择语义模型的“更多选项”(...)菜单,导航到“安全”页,并将成员或组分配到相应的角色。
现在定义了 OLS 规则。 没有所需权限的用户将收到一条消息,指出在使用该字段的所有报表视觉对象中均找不到该字段。
注意事项和限制
OLS 仅适用于工作区中的查看者。 分配有 管理员、 成员或 参与者 角色的工作区成员具有语义模型的“编辑”权限,因此,OLS 不适用于它们。 详细了解工作区中的角色。
这些 Power BI 功能不支持为一个或多个表或列对象配置了 OLS 的语义模型:
- 快速见解可视化效果
- 智能叙事可视化效果
- Excel 数据类型图库