OneLake 安全性使你可以将基于角色的访问控制(RBAC)应用到 OneLake 中存储的数据。 可以定义安全角色,这些角色授予对 Fabric 项中特定文件夹的访问权限,然后将这些角色分配给用户或组。 角色还可以包含行级或列级安全性,以进一步限制访问。 OneLake 安全权限确定用户可以在 Fabric 中的所有体验中看到哪些数据。
具有写入和重新共享权限的 Fabric 用户(通常是管理员和成员工作区用户)可以通过创建 OneLake 安全角色来授予对 Fabric 数据项中特定文件夹或表的访问权限。 若要授予对项中的数据的访问权限,请将用户添加到数据访问角色。 不属于数据访问角色的用户看不到该项中的数据。
先决条件
若要配置 OneLake 安全性,你必须是工作区中的管理员或成员,或者具有写入和重新共享权限。 角色创建和成员身份分配在保存角色后立即生效,因此请确保在将某人添加到角色之前授予访问权限。
下表概述了哪些数据项支持 OneLake 安全性:
| 构造项 | 状态 | 支持的权限 |
|---|---|---|
| Lakehouse | Preview | Read、ReadWrite |
| Azure Databricks 镜像目录 | Preview | 读取 |
如何选择加入
OneLake 安全性目前处于预览状态,因此默认禁用。 预览功能按项配置。 选择加入控件允许单个项尝试预览,而无需在任何其他 Fabric 项上启用预览。
启用后,无法关闭预览功能。
- 导航到 Lakehouse 并选择“管理 OneLake 安全性”(预览版)。
- 查看确认对话框。 数据访问角色预览与外部数据共享预览不兼容。 如果确定更改,请选择“ 继续”。
为了确保顺利选择加入体验,拥有对项目中数据的读取权限的所有用户继续通过名为 DefaultReader 的默认数据访问角色进行读取访问。 使用 虚拟化角色成员身份时,有权查看 Lakehouse(ReadAll 权限)中数据的所有用户都作为此默认角色的成员包含在内。 若要开始限制对这些用户的访问权限,请删除 DefaultReader 角色,或者从访问用户中删除 ReadAll 权限。
重要
确保从 DefaultReader 角色中删除数据访问角色中包含的任何用户。 否则,它们将保持对数据的完全访问权限。
可以保护哪些类型的数据?
使用 OneLake 安全角色管理对项中任何表或文件夹的 OneLake 读取访问权限。 可以使用行和/或列级别安全性进一步限制对表的访问。 任何安全集都适用于从 Fabric 中的所有引擎进行访问。 有关详细信息,请参阅 数据访问控制模型。
对于特定项类型,还可以配置 ReadWrite 访问。 此权限使用户能够在指定表或文件夹中编辑 lakehouse 中的数据,而无需授予他们创建或管理 Fabric 项目的权限。 ReadWrite 访问使用户能够通过 Spark 笔记本、OneLake 文件资源管理器或 OneLake API 执行写入作。 不支持查看者通过 Lakehouse UX 进行写入操作。
创建角色
使用以下步骤创建 OneLake 安全角色。
打开要在其中定义安全性的 Fabric 项。
从项菜单中选择“ 管理 OneLake 安全性”(预览 版)。
在 OneLake 安全(预览版) 窗格中,选择“ 新建”。
为符合以下准则的新角色提供名称:
- 角色名称只能包含字母数字字符。
- 角色名称必须以字母开头。
- 名称不区分大小写,必须是唯一的。
- 最大名称长度为 128 个字符。
选择 “授予” 作为角色类型。
选择要授予的权限。 至少选择读取,还可以选择读写。
如果希望此角色应用于此 Lakehouse 中的所有表和文件,请选择“ 所有数据 ”切换。
此选择还提供对将来添加的任何文件夹的访问权限。
如果希望此角色仅适用于所选的表和文件夹组,请选择 “所选数据 ”开关。 然后,使用以下步骤定义此角色的已批准数据。
选择 Browse Lakehouse 或为您正在处理的项目选择相应的选项。
展开 表 和 文件 目录以查看 Lakehouse 中的数据。
选中要应用角色的表和文件旁边的框。
选择 “添加数据 ”,将所选项添加到角色。
使用“ 将成员添加到角色 ”文本框中,手动输入要包含在角色中的用户的姓名或电子邮件地址。 或者,选择 “高级配置 ”,并按照 “分配虚拟成员”中的指南进行作。
手动添加成员:
- 输入用户的姓名或电子邮件地址。
- 从建议列表中选择正确的名称。
- 选择复选图标以确认所选内容,或选中 X 图标以清除所选内容。
查看 预览角色 摘要。
- 若要编辑数据预览,请选择 Browse Lakehouse 并更新所选的表和文件夹。
- 若要从成员预览中删除用户,请选择其名称旁边的更多选项(...),然后选择 “从角色中删除”。
选择“ 创建角色 ”并等待已成功发布角色的通知。
编辑角色
使用以下步骤编辑现有的 OneLake 安全角色。
打开要在其中定义安全性的项。
从项菜单中选择“ 管理 OneLake 安全性”(预览 版)。
在 OneLake 安全(预览版) 窗格中,选择要编辑的角色。
此作将打开角色详细信息页,其中包括两个选项卡: 角色中的数据 和 角色中的成员。
查看 “角色 中的数据”选项卡中的信息:
此选项卡显示角色成员可以访问的所有数据。
角色名称会显示你正在查看的角色。 若要编辑角色名称,请选择右上角的 “编辑” 下拉列表,选择 “更新角色名称”,输入新名称,然后使用复选标记进行确认。 可以通过选择 X 来放弃更改。
顶部 的“权限” 项指示角色当前授予的权限。 若要更改角色权限,请选择右上角的 “编辑” 下拉列表,选择 “编辑角色权限”,使用下拉列表编辑所选权限,然后使用复选标记进行确认。 可以通过选择 X 来放弃更改。
“数据”列显示属于角色访问的表或文件夹的名称。 可以展开和折叠架构以查看下面的项。 将鼠标悬停在条目上以查看表或文件夹的完整路径。 将鼠标悬停在 ... 上可查看用于配置 行级别安全性 或 列级安全性的选项。 行级别安全性和列级安全指南提供有关其工作原理的详细信息。
“类型”列指示已选择的项的类型。 这些值为: Schema、 Table 或 Folder。
数据访问列指示是否对项应用任何行级别或列级别限制。 具有锁和水平线的图标指示应用行级别安全性,而带有锁和垂直线的图标则表示应用列级安全性。
若要编辑角色中包含的数据,请选择“ 添加数据”。
此作将打开表和文件夹选择对话框。
选中并取消选中表或文件夹,以在角色中添加或删除它们。
选择 “添加数据 ”以确认选择。
选择“角色”选项卡中的成员以查看该角色的成员。
“ 成员 ”列显示成员的个人资料图片和名称。
类型列指示成员是用户还是组。
使用列添加表示用户是通过电子邮件添加为角色的成员,还是作为 Lakehouse 权限组的一部分包含。 有关使用项权限添加用户的详细信息,请参阅 “分配虚拟成员”。
若要编辑角色的成员,请选择“ 添加成员”。
若要手动添加成员,请在 “将成员添加到角色 ”文本框中输入名称或电子邮件。 从建议列表中选择正确的名称。 然后,选择复选图标以确认选择,或选择 X 图标以清除所选内容。
若要从角色中删除用户,请选择其名称旁边的更多选项(...),然后选择“ 从角色中删除”。
对角色成员身份进行任何更改会立即更新角色。 通知指出了任何更改的成功或失败。
删除角色
使用以下步骤删除 OneLake 数据访问角色。
打开要在其中定义安全性的 Lakehouse。
从 Lakehouse 菜单中选择 “管理 OneLake 安全性”(预览 版)。
在 OneLake 安全(预览版) 窗格中,选中要删除的角色旁边的框。
选择 “删除 ”并等待成功删除角色的通知。
分配成员或组
OneLake 安全角色支持将用户添加到角色的两种方法。 主要方法是使用“分配角色”页上的“添加人员或组”框将用户或组直接添加到角色。 第二种是使用 高级配置 控件通过权限组创建虚拟成员身份。
将用户直接添加到角色会将用户添加为角色的显式成员。 这些用户显示其姓名和图片显示在 “成员 ”列表中。
虚拟成员允许根据用户的 Fabric 项权限 动态调整角色的成员身份。 通过选择 “高级配置 ”并选择权限,可以在 Fabric 工作区中添加所有选定权限的用户作为角色的隐式成员。 例如,如果选择 ReadAll,则写入 具有对该项的 ReadAll 和 写入权限的 Fabric 工作区的任何用户都将作为角色的成员包含在内。 可以通过查看“角色”选项卡中的“成员”列中的“已添加”列,查看权限组正在添加哪些用户。无法直接手动删除这些成员。 若要删除通过权限组添加的成员,请从角色中删除权限组。
无论使用哪种成员身份类型,OneLake 安全角色都支持添加单个用户、Microsoft Entra 组和安全主体。
分配虚拟成员
可用于虚拟成员的权限包括:
- 读取
- 写入
- 重新共享
- Execute
- ReadAll
若要分配具有权限组的用户,请使用以下步骤:
选择要向其分配成员的角色的名称。
在“角色详细信息”页上,选择 “角色 ”选项卡中的成员。
选择“添加成员”。
选择 “高级配置”。
在 “权限组 ”框中,选中要包括用户的每个权限旁边的复选框。
每个权限组显示该组中包含的用户数的计数。
选择多个权限组包括具有所有所选所需权限的用户。
选择 “添加” 以包含组并保存角色。