本文介绍如何为数据接收者授予对 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
使用 Databricks CLI 运行以下命令。 将 <share-name> 替换为要授予收件人的共享的姓名,并将 <recipient-name> 替换为收件人的姓名。 
              SELECT 是可以在共享上授予的唯一一项特权。
databricks shares update-permissions <share-name> \
--json='{
  "changes": [
    {
      "principal": "<recipient-name>",
      "add": [
        "SELECT"
      ]
    }
  ]
}'
撤销接收者对共享的访问权限
若要撤销接收者对共享的访问权限,可使用目录资源管理器、Databricks Unity Catalog CLI,或者 Azure Databricks 笔记本或 Databricks SQL 查询编辑器中的 REVOKE ON SHARE SQL 命令。
              所需权限:元存储管理员、具有 USE SHARE 权限的用户,或共享对象所有者。
目录资源管理器
若要撤销接收者对共享的访问权限(从共享开始),请执行以下操作:
- 在 Azure Databricks 工作区中,单击 - 目录。 
- 在目录窗格顶部,单击 - 并选择“增量共享”。 - 或者,在“快速访问”页中,单击“Delta Sharing”> 按钮。 
- 在“与我共享的内容”选项卡上,查找并选择共享。 
- 在“接收者”选项卡上查找接收者。 
- 单击 - ,然后选择撤销。 
- 在确认对话框中,单击“撤销”。 
若要撤销接收者对共享的访问权限(从接收者开始),请执行以下操作:
- 在 Azure Databricks 工作区中,单击 - 目录。 
- 在目录窗格顶部,单击 - 并选择“增量共享”。 - 或者,在“快速访问”页中,单击“Delta Sharing”> 按钮。 
- 在“与我共享的内容”选项卡上,单击“收件人”并选择收件人。 
- 在“共享”选项卡上查找共享。 
- 单击 - 共享行上的 kebab 菜单,然后选择“ 撤销”。 
- 在确认对话框中,单击“撤销”。 
SQL
在笔记本或 Databricks SQL 查询编辑器中运行以下命令。
REVOKE SELECT ON SHARE <share-name> FROM RECIPIENT <recipient-name>;
CLI
使用 Databricks CLI 运行以下命令。 将 <share-name> 替换为要删除收件人的共享的姓名,并将 <recipient-name> 替换为收件人的姓名。 
              SELECT 是可为接收者移除的唯一一项特权。
databricks shares update-permissions <share-name> \
--json='{
  "changes": [
    {
      "principal": "<recipient-name>",
      "remove": [
        "SELECT"
      ]
    }
  ]
}'
查看共享的权限授予或接收者拥有的权限
要查看共享的当前权限授予,可以使用目录资源管理器、Databricks Unity Catalog CLI,或者 Azure Databricks 笔记本或 Databricks SQL 查询编辑器中的 SHOW GRANTS ON SHARE SQL 命令。
所需权限:如果你要查看为接收者授予的对共享的访问权限,你必须是元存储管理员、具有  权限的用户,或共享对象所有者。 如果你要查看授予接收者的共享,你必须是元存储管理员、具有 USE RECIPIENT 权限的用户,或接收者对象所有者。
目录资源管理器
若要查看有权访问某个共享的接收者,请执行以下操作:
- 在 Azure Databricks 工作区中,单击 - 目录。 
- 在目录窗格顶部,单击 - 并选择“增量共享”。 - 或者,在“快速访问”页中,单击“Delta Sharing”> 按钮。 
- 在“与我共享的内容”选项卡上,查找并选择共享。 
- 转到“接收者”选项卡以查看有权访问该共享的所有接收者。 
SQL
在笔记本或 Databricks SQL 查询编辑器中运行以下命令。
SHOW GRANT ON SHARE <share-name>;
CLI
使用 Databricks CLI 运行以下命令。
databricks shares share-permissions <share-name>
若要查看接收者当前拥有的共享权限,可以使用目录资源管理器、Databricks 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 recipients share-permissions <recipient-name>