授予和管理对 Delta Sharing 数据共享的访问权限(针对提供者)
本文介绍如何为数据接收者授予对 Delta Sharing 共享的访问权限。 其中还将介绍如何查看、更新和撤销访问权限。
要求
若要与接收者共享数据:
- 必须使用附加了 Unity Catalog 元存储的 Azure Databricks 工作区。
- 必须使用一个采用支持 Unity Catalog 的群集访问模式的 SQL 仓库或群集。
- 共享和接收者必须已定义。
- 你必须拥有下列身份之一:
- 元存储管理员。
- 对共享和接收者对象((
USE SHARE
+SET SHARE PERMISSION
) 或共享所有者)和(USE RECIPIENT
或接收者所有者)拥有委托权限或所有权的用户。
为接收者授予对共享的访问权限
若要向接收者授予共享访问权限,可以使用目录资源管理器、Databricks Unity Catalog CLI,或者 Azure Databricks 笔记本或 Databricks SQL 查询编辑器中的 SQL 命令。
所需的权限:下列其中一项:
- 元存储管理员。
- 对共享和接收者对象((
USE SHARE
+SET SHARE PERMISSION
) 或共享所有者)和(USE RECIPIENT
或接收者所有者)拥有委托权限或所有权。
目录资源管理器
若要将接收者添加到共享(从共享开始),请执行以下操作:
- 在 Azure Databricks 工作区中,单击“目录”。
- 在左侧窗格中,展开“Delta Sharing”菜单并选择“由我共享”。
- 在“共享”选项卡上,查找并选择共享。
- 单击“添加接收者”。
- 在“添加接收者”对话框中,开始键入接收者姓名,或单击下拉菜单以选择要添加到共享的接收者。
- 单击“添加”。
若要向接收者授予共享访问权限(从接收者开始),请执行以下操作:
- 在 Azure Databricks 工作区中,单击“目录”。
- 在左侧窗格中,展开“Delta Sharing”菜单并选择“由我共享”。
- 在“接收者”选项卡上,查找并选择接收者。
- 单击“授予共享”。
- 在“授予共享”对话框中,开始键入共享名称,或单击下拉菜单以选择要授予的共享。
- 单击“授予”。
Sql
在笔记本或 Databricks SQL 查询编辑器中运行以下命令。
GRANT SELECT ON SHARE <share-name> TO RECIPIENT <recipient-name>;
SELECT
是可为共享接收者授予的唯一一项特权。
Cli
创建包含以下内容的 JSON 文件(请替换 recipient-name
)。 SELECT
是可以在共享上授予的唯一一项特权。
{
"privilege_assignments": [{
"principal": "recipient-name",
"privileges": [
"SELECT"
]
}]
}
然后使用 Databricks CLI 运行以下命令。 请将 <share-name>
替换为要授予接收者的共享名称,并将 update-share-perms.json
替换为 JSON 文件的文件名。
databricks unity-catalog shares update-permissions --name <share-name> \
--json-file update-share-perms.json
撤销接收者对共享的访问权限
若要撤销接收者对共享的访问权限,可使用目录资源管理器、Databricks Unity Catalog CLI,或者 Azure Databricks 笔记本或 Databricks SQL 查询编辑器中的 REVOKE ON SHARE
SQL 命令。
所需权限:元存储管理员、具有 USE SHARE
权限的用户,或共享对象所有者。
目录资源管理器
若要撤销接收者对共享的访问权限(从共享开始),请执行以下操作:
- 在 Azure Databricks 工作区中,单击“目录”。
- 在左侧窗格中,展开“Delta Sharing”菜单并选择“由我共享”。
- 在“共享”选项卡上,查找并选择共享。
- 在“接收者”选项卡上查找接收者。
- 单击 kebab 菜单(也称为三点菜单),然后选择“撤销”。
- 在确认对话框中,单击“撤销”。
若要撤销接收者对共享的访问权限(从接收者开始),请执行以下操作:
- 在 Azure Databricks 工作区中,单击“目录”。
- 在左侧窗格中,展开“Delta Sharing”菜单并选择“由我共享”。
- 在“接收者”选项卡上,查找并选择接收者。
- 在“共享”选项卡上查找共享。
- 在共享行中单击 kebab 菜单(也称为三点菜单),然后选择“撤销”。
- 在确认对话框中,单击“撤销”。
Sql
在笔记本或 Databricks SQL 查询编辑器中运行以下命令。
REVOKE SELECT ON SHARE <share-name> FROM RECIPIENT <recipient-name>;
Cli
创建包含以下内容的 JSON 文件(请替换 recipient-name
):
{
"changes": [{
"principal": "recipient-name",
"remove": ["SELECT"]
}]
}
使用 Databricks CLI 运行以下命令。 请将 <share-name>
替换为要授予接收者的共享名称,并将 update-share-perms.json
替换为 JSON 文件的文件名。
databricks unity-catalog shares update-permissions --name <share-name> --json-file update-share-perms.json
查看共享的权限授予或接收者拥有的权限
要查看共享的当前权限授予,可以使用目录资源管理器、Databricks Unity Catalog CLI,或者 Azure Databricks 笔记本或 Databricks SQL 查询编辑器中的 SHOW GRANTS ON SHARE
SQL 命令。
所需权限:如果你要查看为接收者授予的对共享的访问权限,你必须是元存储管理员、具有 USE SHARE
权限的用户,或共享对象所有者。 如果你要查看授予接收者的共享,你必须是元存储管理员、具有 USE RECIPIENT
权限的用户,或接收者对象所有者。
目录资源管理器
若要查看有权访问某个共享的接收者,请执行以下操作:
- 在 Azure Databricks 工作区中,单击“目录”。
- 在左侧窗格中,展开“Delta Sharing”菜单并选择“由我共享”。
- 在“共享”选项卡上,查找并选择共享。
- 转到“接收者”选项卡以查看有权访问该共享的所有接收者。
Sql
在笔记本或 Databricks SQL 查询编辑器中运行以下命令。
SHOW GRANT ON SHARE <share-name>;
Cli
使用 Databricks CLI 运行以下命令。
databricks unity-catalog shares list-permissions --name <share-name>
若要查看接收者当前拥有的共享权限,可以使用目录资源管理器、Databricks Unity Catalog CLI,或者 Azure Databricks 笔记本或 Databricks SQL 查询编辑器中的 SHOW GRANTS TO RECIPIENT
SQL 命令。
目录资源管理器
若要查看授予接收者的共享,请执行以下操作:
- 在 Azure Databricks 工作区中,单击“目录”。
- 在左侧窗格中,展开“Delta Sharing”菜单并选择“由我共享”。
- 在“接收者”选项卡上,查找并选择接收者。
- 转到“共享”选项卡以查看接收者有权访问的所有共享。
Sql
在笔记本或 Databricks SQL 查询编辑器中运行以下命令。
SHOW GRANTS TO RECIPIENT <recipient-name>;
Cli
使用 Databricks CLI 运行以下命令。
databricks unity-catalog recipients list-permissions --name <recipient-name>