管理 OpenSharing 的共享

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

若要创建新共享或向现有共享添加数据资产,请参阅 创建 OpenSharing 共享共享。 若要授予收件人对共享的访问权限,请参阅 “管理对 OpenSharing 数据共享”(对于提供程序)的访问权限。 若要管理共享的数据收件人,请参阅 “管理 OpenSharing 的数据收件人”。

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

要求

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

任务 要求
授予接收者对共享的访问权限
  • 是元存储管理员。或
  • 是对共享和收件人对象具有委派权限或所有权的用户,这意味着用户必须满足以下两项要求:
    • 拥有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. “目录”窗格顶部,单击齿轮图标,然后选择OpenSharing

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

  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. “目录”窗格顶部,单击齿轮图标,然后选择OpenSharing

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

  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. “目录”窗格顶部,单击齿轮图标,然后选择OpenSharing

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

  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. “目录”窗格顶部,单击齿轮图标,然后选择OpenSharing

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

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

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

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

SQL

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

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

CLI

使用 Databricks CLI 运行以下命令。

databricks shares delete <share-name>