授予和管理对 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 或接收者所有者)拥有委托权限或所有权。

目录资源管理器

若要将接收者添加到共享(从共享开始),请执行以下操作:

  1. 在 Azure Databricks 工作区中,单击Catalog icon“目录”。
  2. 在左侧窗格中,展开“Delta Sharing”菜单并选择“由我共享”。
  3. 在“共享”选项卡上,查找并选择共享。
  4. 单击“添加接收者”。
  5. 在“添加接收者”对话框中,开始键入接收者姓名,或单击下拉菜单以选择要添加到共享的接收者。
  6. 单击“添加”。

若要向接收者授予共享访问权限(从接收者开始),请执行以下操作:

  1. 在 Azure Databricks 工作区中,单击Catalog icon“目录”。
  2. 在左侧窗格中,展开“Delta Sharing”菜单并选择“由我共享”。
  3. 在“接收者”选项卡上,查找并选择接收者。
  4. 单击“授予共享”。
  5. 在“授予共享”对话框中,开始键入共享名称,或单击下拉菜单以选择要授予的共享。
  6. 单击“授予”

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 权限的用户,或共享对象所有者。

目录资源管理器

若要撤销接收者对共享的访问权限(从共享开始),请执行以下操作:

  1. 在 Azure Databricks 工作区中,单击Catalog icon“目录”。
  2. 在左侧窗格中,展开“Delta Sharing”菜单并选择“由我共享”。
  3. 在“共享”选项卡上,查找并选择共享。
  4. 在“接收者”选项卡上查找接收者。
  5. 单击 Kebab menu kebab 菜单(也称为三点菜单),然后选择“撤销”。
  6. 在确认对话框中,单击“撤销”。

若要撤销接收者对共享的访问权限(从接收者开始),请执行以下操作:

  1. 在 Azure Databricks 工作区中,单击Catalog icon“目录”。
  2. 在左侧窗格中,展开“Delta Sharing”菜单并选择“由我共享”。
  3. 在“接收者”选项卡上,查找并选择接收者。
  4. 在“共享”选项卡上查找共享。
  5. 在共享行中单击 Kebab menu kebab 菜单(也称为三点菜单),然后选择“撤销”。
  6. 在确认对话框中,单击“撤销”。

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 权限的用户,或接收者对象所有者。

目录资源管理器

若要查看有权访问某个共享的接收者,请执行以下操作:

  1. 在 Azure Databricks 工作区中,单击Catalog icon“目录”。
  2. 在左侧窗格中,展开“Delta Sharing”菜单并选择“由我共享”。
  3. 在“共享”选项卡上,查找并选择共享。
  4. 转到“接收者”选项卡以查看有权访问该共享的所有接收者。

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 命令。

目录资源管理器

若要查看授予接收者的共享,请执行以下操作:

  1. 在 Azure Databricks 工作区中,单击Catalog icon“目录”。
  2. 在左侧窗格中,展开“Delta Sharing”菜单并选择“由我共享”。
  3. 在“接收者”选项卡上,查找并选择接收者。
  4. 转到“共享”选项卡以查看接收者有权访问的所有共享。

Sql

在笔记本或 Databricks SQL 查询编辑器中运行以下命令。

SHOW GRANTS TO RECIPIENT <recipient-name>;

Cli

使用 Databricks CLI 运行以下命令。

databricks unity-catalog recipients list-permissions --name <recipient-name>