管理 Delta Sharing 共享

本页介绍如何在 Azure Databricks 中查看、更新和删除现有的 Delta Sharing 共享。 共享是 Unity 目录中的安全对象,它捆绑表、视图、卷、笔记本、AI 模型和其他数据资产,以便与一个或多个收件人共享。

若要创建新共享或向现有共享添加数据资产,请参阅 为 Delta Sharing 创建共享。 若要授予接收方对某个共享的访问权限,请参阅 管理对 Delta Sharing 数据共享的访问权限(面向提供方)。 若要管理与你共享数据的数据接收方,请参阅 管理 Delta Sharing 的数据接收方

若要了解有关共享模型的详细信息,请参阅 共享、提供商和收件人

要求

检查是否满足要完成的每个任务的列出的要求。

任务 要求
授予接收者对共享的访问权限
  • 是元存储管理员。或
  • 是对共享和收件人对象具有委派权限或所有权的用户,这意味着用户必须满足以下两项要求:
    • 拥有USE SHARESET SHARE PERMISSION特权,或成为共享所有者
    • 拥有 USE RECIPIENT 权限或成为收件人所有者
查看共享
  • 作为元存储管理员(可以查看所有内容)。 OR
  • 具备 USE SHARE 特权的用户(可查看所有内容)。 OR
  • 是共享对象所有者。
更新共享所有者
  • 成为元数据存储管理员。
更新共享名称
  • 拥有 CREATE SHARE 权限。
  • 成为股份所有者。
更新其他共享属性
  • 成为股份所有者。
删除共享
  • 是共享对象所有者。

查看共享和共享详细信息

查看共享内容及其详细信息之前,请检查是否满足要求

若要查看共享列表或有关共享的详细信息,请使用目录资源管理器、Databricks Unity 目录 CLI 或 Azure Databricks 笔记本或 Databricks SQL 查询编辑器中的 SQL 命令。

共享详细信息包括:

  • 共享的所有者、创建者、创建时间戳、更新程序、更新时间戳、注释。
  • 共享中的数据资产。
  • 可访问共享内容的收件人。

目录浏览器

  1. 在 Azure Databricks 工作区中,单击 Data icon.Catalog

  2. 在“目录”窗格顶部,单击 齿轮图标,然后选择“Delta Sharing”。Gear icon.

    或者,在“快速访问”页中,单击“Delta Sharing >”按钮。

  3. 打开“共享”选项卡以查看共享列表。

  4. 在“详细信息”选项卡上查看共享详细信息。

SQL

要查看共享列表,请在笔记本或 Databricks SQL 查询编辑器中运行以下命令。 (可选)将<pattern>替换为LIKE谓词

SHOW SHARES [LIKE <pattern>];

若要查看有关特定共享的详细信息,请运行以下命令。

DESCRIBE SHARE <share-name>;

若要查看有关共享中的所有表、视图和卷的详细信息,请运行以下命令。

SHOW ALL IN SHARE <share-name>;

CLI

若要查看共享列表,请使用 Databricks CLI 运行以下命令。

databricks shares list

若要查看有关特定共享的详细信息,请运行以下命令。

databricks shares get <share-name>

查看对共享具有权限的收件人

查看收件人之前,请检查是否满足 要求

若要查看收件人已被授予访问权限的共享列表,请使用目录浏览器、Databricks Unity 目录 CLI 或 Azure Databricks 笔记本,或 Databricks SQL 查询编辑器中的 SHOW GRANTS TO RECIPIENT SQL 命令。

目录浏览器

  1. 在 Azure Databricks 工作区中,单击 Data icon.Catalog

  2. 在“目录”窗格顶部,单击 齿轮图标,然后选择“Delta Sharing”。Gear icon.

    或者,在“快速访问”页中,单击“Delta Sharing >”按钮。

  3. 在“ 我共享 ”选项卡上,找到并选择收件人。

  4. 转到“收件人”选项卡,查看可以访问共享的收件人列表。

SQL

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

SHOW GRANTS ON SHARE <share-name>;

CLI

使用 Databricks CLI 运行以下命令。

databricks shares share-permissions <share-name>

更新共享

在对共享进行更新之前,请检查是否满足 要求

可以通过以下方式更新共享:

  • 重命名共享。
  • 从共享中移除表、视图、卷和模式。
  • 添加或更新共享注释。
  • 重命名表的别名(显示给收件人的表名)。
  • 启用或禁用对表的历史数据的访问,以允许接收者执行时间旅行查询或流读取表中的数据。
  • 添加、更新或删除分区定义。
  • 更改共享所有者。

若要对这些共享进行更新,请使用目录资源管理器、Databricks Unity 目录 CLI 或 Azure Databricks 笔记本或 Databricks SQL 查询编辑器中的 SQL 命令。 但是,不能使用目录资源管理器重命名共享。

目录浏览器

  1. 在 Azure Databricks 工作区中,单击 Data icon.Catalog

  2. 在“目录”窗格顶部,单击 齿轮图标,然后选择“Delta Sharing”。Gear icon.

    或者,在“快速访问”页中,单击“Delta Sharing >”按钮。

  3. 在“ 我共享 ”选项卡上,找到要更新的共享并单击其名称。

在共享详细信息页中,执行以下操作:

  • 单击“所有者”或“批注”字段旁边的 “编辑”图标 以更新这些值。
  • 单击资产行中的串形菜单 Kebab 菜单图标。 按钮以将其删除。
  • 单击“管理资产 > 编辑资产”以更新所有其他属性:
    • 若要移除资产,请清除资产旁边的复选框。
    • 若要添加、更新或移除分区定义,请单击“高级选项”。

SQL

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

重命名共享文件:

ALTER SHARE <share-name> RENAME TO <new-share-name>;

从共享中删除表:

ALTER SHARE share_name REMOVE TABLE <table-name>;

从共享中删除卷:

ALTER SHARE share_name REMOVE VOLUME <volume-name>;

在分享上添加或更新评论:

COMMENT ON SHARE <share-name> IS '<comment>';

为共享中的表添加或修改分区:

ALTER SHARE <share-name> ADD TABLE <table-name> PARTITION(<clause>);

更改共享所有者:

ALTER SHARE <share-name> OWNER TO  '<principal>'

-- Principal must be an account-level user email address or group name.

为表启用历史记录共享:

ALTER SHARE <share-name> ADD TABLE <table-name> WITH HISTORY;

有关 ALTER SHARE 参数的详细信息,请参阅 ALTER SHARE

CLI

使用 Databricks CLI 运行以下命令。

重命名共享文件:

databricks shares update <share-name> --name <new-share-name>

从共享中删除表:

databricks shares update <share-name> \
  --json '{
    "updates": [
      {
        "action": "REMOVE",
        "data_object": {
          "name": "<table-full-name>",
          "data_object_type": "TABLE",
          "shared_as": "<table-alias>"
        }
      }
    ]
  }'

使用 Databricks CLI 0.210 或更高版本从共享中移除存储卷:

databricks shares update <share-name> \
  --json '{
    "updates": [
      {
        "action": "REMOVE",
        "data_object": {
          "name": "<volume-full-name>",
          "data_object_type": "VOLUME",
          "string_shared_as": "<volume-alias>"
        }
      }
    ]
  }'

注释

如果卷没有别名,则使用 name 属性。 如果有别名,则使用 string_shared_as

在分享上添加或更新评论:

databricks shares update <share-name> --comment '<comment>'

更改共享所有者:

databricks  shares update <share-name> --owner '<principal>'

主体必须是帐户级用户电子邮件地址或组名称。

更新共享所有者时的注意事项

共享所有者会影响授权和安全功能(如 ABAC 策略)的评估方式。 如果将共享所有权转让给超特权用户,并且您具有受 ABAC 策略保护的表或架构,则接收者将拥有超特权访问权限。

删除共享

删除共享时,收件人无法再访问共享数据。 在删除共享对象之前,请检查是否满足 要求

若要删除共享,请使用目录资源管理器、Databricks Unity 目录 CLI 或 Azure Databricks 笔记本或 Databricks SQL query editor中的 DELETE SHARE SQL 命令。 你必须是份额的所有者。

目录浏览器

  1. 在 Azure Databricks 工作区中,单击 Data icon.Catalog

  2. 在“目录”窗格顶部,单击 齿轮图标,然后选择“Delta Sharing”。Gear icon.

    或者,在“快速访问”页中,单击“Delta Sharing >”按钮。

  3. 在“ 我共享 ”选项卡上,找到要删除的共享并单击其名称。

  4. 单击 “Kebab”菜单图标。 烤肉串菜单,然后选择“ 删除”。

  5. 在确认对话框中,单击“删除”。

SQL

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

DROP SHARE [IF EXISTS] <share-name>;

CLI

使用 Databricks CLI 运行以下命令。

databricks shares delete <share-name>