创建和管理 Delta Sharing 的数据接收者

本文介绍如何创建和管理 Delta Sharing 的接收者。

接收者是一个命名对象,表示现实世界中使用共享数据的用户或用户组的标识。 创建接收者的方式根据接收者是否有权访问启用了 Unity Catalog 的 Databricks 工作区而异:

  • 对于有权访问启用了 Unity Catalog 的 Databricks 工作区的接收者,你可以使用完全由 Databricks 管理的安全连接创建一个接收者对象。 这种共享模式称为“Databricks 到 Databricks 共享”。
  • 对于无权访问启用了 Unity Catalog 的 Databricks 工作区的接收者,必须使用开放共享,以及由你使用基于令牌的身份验证管理的安全连接。

有关这两种共享模式以及何时选择哪种模式的详细信息,请参阅开放共享与 Databricks 到 Databricks 共享

要求

若要创建接收者:

  • 你需是元存储管理员,或者对要共享的数据所要注册到的 Unity Catalog 元存储拥有 CREATE_RECIPIENT 特权。
  • 必须使用附加了 Unity Catalog 元存储的 Azure Databricks 工作区创建接收者。
  • 如果你使用 Databricks 笔记本创建接收者,则群集必须使用 Databricks Runtime 11.3 LTS 或更高版本以及共享或单用户群集访问模式。

对于其他接收者管理操作(例如查看、删除、更新和授予接收者对共享的访问权限),请参阅本文的特定操作部分中列出的权限要求。

为有权访问 Databricks 的用户创建接收者对象(Databricks 到 Databricks 共享)

如果数据接收者有权访问启用了 Unity Catalog 的 Databricks 工作区,则你可以创建身份验证类型为 DATABRICKS 的接收者对象。

身份验证类型为 DATABRICKS 的接收者对象表示特定 Unity Catalog 元存储中的数据接收者,该接收者在接收者对象定义中由包含元存储的云、区域和 UUID 的共享标识符字符串标识。 只能在该元存储中访问与该接收者共享的数据。

步骤 1:请求接收者的共享标识符

要求接收者用户向你发送 Unity Catalog 元存储的共享标识符,该元存储已附加到接收者用户或用户组将在其中处理共享数据的工作区。

共享标识符是由元存储的云、区域和 UUID(元存储的唯一标识符)组成的字符串,格式为 <cloud>:<region>:<uuid>

例如,在以下屏幕截图中,完整的共享标识符字符串是 aws:us-west-2:19a84bee-54bc-43a2-87de-023d0ec16016

CURRENT_METASTORE 的示例

接收者可以使用目录资源管理器、Databricks Unity Catalog CLI、Databricks 笔记本中的默认 SQL 函数 CURRENT_METASTORE 或在他们打算使用的工作区中支持 Unity Catalog 的群集上运行的 Databricks SQL 查询来查找该标识符。

目录资源管理器

若要使用目录资源管理器获取共享标识符,请执行以下操作:

  1. 在 Azure Databricks 工作区中,单击 “目录”图标“目录”

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

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

  3. 在“与我共享的内容”选项卡上,单击右上角的 Databricks 共享组织名称,然后选择“复制共享标识符”

SQL

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

SELECT CURRENT_METASTORE();

CLI

使用 Databricks CLI 运行以下命令。 共享标识符将作为 global_metastore_id 返回。

databricks metastores summary

可以通过向联系人发送此步骤中包含的信息来帮助接收者,或者可以将他们指向在 Databricks 到 Databricks 模型中获取访问权限

步骤 2:创建接收者

若要为 Databricks 到 Databricks 共享创建接收者,可以使用目录资源管理器、Databricks Unity Catalog CLI,或者 Azure Databricks 笔记本或 Databricks SQL 查询编辑器中的 CREATE RECIPIENT SQL 命令。

所需的权限:元存储管理员,或者对要共享的数据所要注册到的 Unity Catalog 元存储拥有 CREATE_RECIPIENT 特权的用户。

目录资源管理器

  1. 在 Azure Databricks 工作区中,单击 “目录”图标“目录”。

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

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

  3. 在“由我共享的内容”选项卡上,单击“新建收件人”

  4. 输入“收件人姓名”和“共享标识符”

    使用格式为 <cloud>:<region>:<uuid> 的完整共享标识符字符串。 例如,aws:us-west-2:19a84bee-54bc-43a2-87de-023d0ec16016

  5. (可选)输入注释。

  6. 单击“创建”。

  7. (可选)创建自定义接收者属性。

    单击“编辑属性”>“+添加属性”。 然后添加属性名称(“键”)和“值”。 有关详细信息,请参阅管理接收者属性

SQL

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

CREATE RECIPIENT [IF NOT EXISTS] <recipient-name>
USING ID '<sharing-identifier>'
[COMMENT "<comment>"];

使用格式为 <cloud>:<region>:<uuid> 的完整共享标识符字符串。 例如,aws:eu-west-1:g0c979c8-3e68-4cdf-94af-d05c120ed1ef

还可为接收者添加自定义属性。 有关详细信息,请参阅管理接收者属性

CLI

使用 Databricks CLI 运行以下命令。 替换占位符值替:

  • <recipient-name>:接收者的名称。
  • <sharing-identifier>:格式为 <cloud>:<region>:<uuid> 的完整共享标识符字符串。 例如 aws:eu-west-1:g0c979c8-3e68-4cdf-94af-d05c120ed1ef
  • <authentication-type>:当为 <sharing-identifier> 提供格式为 <cloud>:<region>:<uuid> 的共享标识符字符串时设置为 DATABRICKS
databricks recipients create <recipient-name> <authentication-type> --sharing-code <sharing-identifier>

还可为接收者添加自定义属性。 有关详细信息,请参阅管理接收者属性

将使用 authentication_typeDATABRICKS 创建接收者。

为所有其他用户创建接收者对象(开放共享)

如果要与 Azure Databricks 工作区外的用户共享数据(无论他们自己是否使用 Databricks),可使用开放 Delta Sharing 安全地共享数据。 工作原理如下:

  1. 作为数据提供者,你可以在 Unity Catalog 元存储中创建接收者对象。
  2. 当你创建接收者对象时,Azure Databricks 会生成一个令牌、一个包含该令牌的凭据文件,以及一个供你与接收者共享的激活链接。 接收者对象的身份验证类型为 TOKEN
  3. 接收者访问激活链接,下载凭据文件,使用凭据文件进行身份验证,并获取你为他们授予了访问权限的共享中包含的表的读取访问权限。

步骤 1:创建接收者

若要为开放共享创建接收者,可以使用目录资源管理器、Databricks Unity Catalog CLI,或者 Azure Databricks 笔记本或 Databricks SQL 查询编辑器中的 CREATE RECIPIENT SQL 命令。

所需的权限:元存储管理员,或者对要共享的数据所要注册到的 Unity Catalog 元存储拥有 CREATE_RECIPIENT 特权的用户。

目录资源管理器

  1. 在 Azure Databricks 工作区中,单击 “目录”图标“目录”

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

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

  3. 在“由我共享的内容”选项卡上,单击“新建收件人”

  4. 输入接收者的“姓名”

  5. (可选)输入注释。

  6. 单击“创建”。

    不会为开放共享接收者使用共享标识符。

  7. 复制激活链接。

    或者,可以稍后获取激活链接。 请参阅步骤 2:获取激活链接

  8. (可选)创建自定义接收者属性。

    在收件人“详细信息”选项卡上,单击“编辑属性”>“+添加属性”。 然后添加属性名称(“键”)和“值”。 有关详细信息,请参阅管理接收者属性

SQL

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

CREATE RECIPIENT [IF NOT EXISTS] <recipient-name>
[COMMENT "<comment>"];

还可为接收者添加自定义属性。 有关详细信息,请参阅管理接收者属性

CLI

使用 Databricks CLI 运行以下命令。

databricks recipients create <recipient-name>

还可为接收者添加自定义属性。 有关详细信息,请参阅管理接收者属性

输出包含你与接收者共享的 activation_url

将使用 authentication_typeTOKEN 创建接收者。

注意

创建接收者时,可以选择将接收者访问权限限制为受限的一组 IP 地址。 还可以将 IP 访问列表添加到现有接收者。 请参阅使用 IP 访问列表限制 Delta Sharing 接收者访问权限(开放共享)

若要获取新接收者的激活链接,可以使用目录资源管理器、Databricks Unity Catalog CLI,或者 Azure Databricks 笔记本或 Databricks SQL 查询编辑器中的 DESCRIBE RECIPIENT SQL 命令。

如果接收者已下载凭据文件,则不会返回或显示激活链接。

所需的权限:元存储管理员、拥有 USE RECIPIENT 特权的用户,或接收者对象所有者。

目录资源管理器

  1. 在 Azure Databricks 工作区中,单击 “目录”图标“目录”

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

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

  3. 在“由我共享的内容”选项卡上,单击“收件人”并选择收件人

  4. 在接收者详细信息页上,复制“激活链接”。

SQL

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

DESCRIBE RECIPIENT <recipient-name>;

输出包含 activation_link

CLI

使用 Databricks CLI 运行以下命令。

databricks recipients get <recipient-name>

输出包含 activation_url

向接收者授予对共享的访问权限

创建接收者并创建共享后,可以向接收者授予对这些共享的访问权限。

若要向接收者授予共享访问权限,可以使用目录资源管理器、Databricks Unity Catalog CLI,或者 Azure Databricks 笔记本或 Databricks SQL 查询编辑器中的 GRANT ON SHARE SQL 命令。

所需的权限:下列其中一项:

  • 元存储管理员。
  • 对共享和接收者对象((USE SHARE + SET SHARE PERMISSION) 或共享所有者)和(USE RECIPIENT 或接收者所有者)拥有委托权限或所有权。

有关说明,请参阅管理对 Delta Sharing 数据共享的访问权限(适用于提供者)

向接收者发送其连接信息

必须告知接收者如何访问你与他们共享的数据。 与接收者共享的信息取决于你使用的是 Databricks 到 Databricks 共享还是开放共享:

查看接收者

若要查看接收者列表,可以使用目录资源管理器、Databricks Unity Catalog CLI,或者 Azure Databricks 笔记本或 Databricks SQL 查询编辑器中的 SHOW RECIPIENTS SQL 命令。

所需的权限:必须是元存储管理员或拥有 USE RECIPIENT 特权才能查看元存储中的所有接收者。 其他用户只能访问其拥有的接收者。

目录资源管理器

  1. 在 Azure Databricks 工作区中,单击 “目录”图标“目录”

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

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

  3. 在“由我共享的内容”选项卡上,单击“收件人”

SQL

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

SHOW RECIPIENTS [LIKE <pattern>];

CLI

使用 Databricks CLI 运行以下命令。

databricks recipients list

查看接收者详细信息

若要查看有关接收者的详细信息,可以使用目录资源管理器、Databricks Unity Catalog CLI,或者 Azure Databricks 笔记本或 Databricks SQL 查询编辑器中的 DESCRIBE RECIPIENT SQL 命令。

所需的权限:元存储管理员、拥有 USE RECIPIENT 特权的用户,或接收者对象所有者。

详细信息包括:

  • 接收者的创建者、创建时间戳、注释和身份验证类型(TOKENDATABRICKS)。
  • 如果接收者使用开放共享:令牌生存期、激活链接、激活状态(凭据是否已下载)和 IP 访问列表(如果已分配)。
  • 如果接收者使用 Databricks 到 Databricks 共享:接收者的 Unity Catalog 元存储的云、区域和元存储 ID,以及激活状态。
  • 接收者属性,包括自定义属性。 请参阅管理接收者属性

目录资源管理器

  1. 在 Azure Databricks 工作区中,单击 “目录”图标“目录”

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

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

  3. 在“由我共享的内容”选项卡上,单击“收件人”并选择收件人

SQL

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

DESCRIBE RECIPIENT <recipient-name>;

CLI

使用 Databricks CLI 运行以下命令。

databricks recipients get <recipient-name>

查看接收者的共享权限

若要查看收件人有权访问的共享列表,可以使用 Catalog Explorer、Databricks CLI,或者 Azure Databricks 笔记本或 Databricks SQL 查询编辑器中的 SHOW GRANTS TO RECIPIENT SQL 命令。

所需的权限:元存储管理员、拥有 USE RECIPIENT 特权的用户,或接收者对象所有者。

目录资源管理器

  1. 在 Azure Databricks 工作区中,单击 “目录”图标“目录”

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

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

  3. 在“由我共享的内容”选项卡上,单击“收件人”并选择收件人

  4. 转到“共享”选项卡,查看与接收者共享的共享列表。

SQL

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

SHOW GRANTS TO RECIPIENT <recipient-name>;

CLI

使用 Databricks CLI 运行以下命令。

databricks recipients share-permissions <recipient-name>

更新接收者

若要更新接收者,可以使用目录资源管理器、Databricks Unity Catalog CLI,或者 Azure Databricks 笔记本或 Databricks SQL 查询编辑器中的 ALTER RECIPIENT SQL 命令。

可更新的属性包括收件人姓名、所有者、注释和自定义属性。

所需的权限:必须是元存储管理员或接收者对象的所有者才能更新所有者。 必须是元存储管理员(或拥有 CREATE_RECIPIENT 特权的用户)和所有者才能更新姓名。 须是所有者才能更新注释或自定义属性。

目录资源管理器

  1. 在 Azure Databricks 工作区中,单击 “目录”图标“目录”

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

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

  3. 在“由我共享的内容”选项卡上,单击“收件人”并选择收件人

  4. 在“收件人详细信息”页上:

    • 更新所有者。

    • 编辑或添加注释。

    • 重命名收件人。

      单击 Kebab 菜单 串形菜单,然后选择“重命名”。

    • 编辑、删除或添加自定义接收者属性。

      单击“编辑属性”。 若要添加属性,请单击“+添加属性”并输入属性名称(“键”)和“值”。 有关详细信息,请参阅管理接收者属性

SQL

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

ALTER RECIPIENT <recipient-name> RENAME TO <new-recipient-name>;

ALTER RECIPIENT <recipient-name> OWNER TO <new-owner>;

COMMENT ON RECIPIENT <recipient-name> IS "<new-comment>";

ALTER RECIPIENT <recipient-name> SET PROPERTIES ( <property-key>  =  property_value [, ...] )

ALTER RECIPIENT <recipient-name> UNSET PROPERTIES ( <property-key> [, ...] )

有关属性的详细信息,请参阅管理接收者属性

CLI

创建一个 JSON 文件,其中包含对接收者名称、注释、所有者、IP 访问列表或自定义属性的更新。

{
    "name": "new-recipient-name",
    "owner": "someone-else@example.com",
    "comment": "something new",
    "ip_access_list": {
            "allowed_ip_addresses": ["8.8.8.8", "8.8.8.4/10"]
    },
    "property": {
            "country": "us",
            "id": "001"
    }
}

然后使用 Databricks CLI 运行以下命令。 请将 <recipient-name> 替换为当前接收者姓名,并将 update-recipient-settings.json 替换为 JSON 文件的文件名。

databricks recipients update --json-file update-recipient-settings.json

有关属性的详细信息,请参阅管理接收者属性

管理接收者令牌(开放共享)

如果使用开放共享与某个接收者共享数据,可能需要轮换该接收者的令牌。 轮换令牌包括设置现有令牌过期并将其替换为新的令牌和激活 URL。

对于以下情况,应轮换接收者的令牌并生成新的激活 URL:

  • 现有接收者令牌即将过期。
  • 接收者丢失其激活 URL,或者该 URL 遭到入侵。
  • 凭据在接收者下载后损坏、丢失或泄露。
  • 修改元存储的接收者令牌生存期时。 请参阅修改接收者令牌生存期

令牌安全注意事项

在任何给定时间,接收者最多只能有两个令牌:一个有效令牌和一个轮换令牌。 被轮换的令牌是设置为过期的令牌,它将被活动令牌替换。 在轮换令牌过期之前,尝试再次轮换令牌会导致错误。

当你轮换接收者的令牌时,可以选择将 --existing-token-expire-in-seconds 设置为现有接收者令牌(即要被轮换的令牌)过期前的秒数。 如果将值设置为 0,现有接收者令牌将立即过期。

Databricks 建议将 --existing-token-expire-in-seconds 设置为相对较短的时间段,让接收者组织有时间访问新激活 URL,同时尽量缩短接收者具有两个有效令牌的时间。 如果你怀疑现有接收者令牌已泄露,Databricks 建议强制使其立即过期。

如果接收者的现有激活 URL 从未被访问过,则轮换现有令牌会使该激活 URL 失效,并将其替换为新的 URL。

如果所有接收者令牌都已过期,轮换令牌时会使用新的激活 URL 替换现有激活 URL。 Databricks 建议立即轮换或删除令牌已过期的接收者。

如果接收者激活 URL 无意中发送给了错的人,或者通过不安全的通道发送,Databricks 建议执行以下操作:

  1. 撤消接收者对共享的访问权限
  2. 轮换接收者,并将 --existing-token-expire-in-seconds 设置为 0
  3. 通过安全通道将新的激活 URL 共享给目标接收者。
  4. 激活 URL 被访问后,授予接收者再次访问共享的权限。

在极端情况下,可以删除再重新创建接收者,而不是轮换接收者的令牌。

轮换接收者的令牌

若要轮换接收者的令牌,可以使用目录资源管理器或 Databricks Unity Catalog CLI。

所需的权限:接收者对象所有者。

目录资源管理器

  1. 在 Azure Databricks 工作区中,单击 “目录”图标目录”。

  2. 在左侧窗格中,展开“Delta Sharing”菜单并选择“由我共享”。

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

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

  4. 在“由我共享的内容”选项卡上,单击“收件人”并选择收件人

  5. 在“详细信息”选项卡上的“令牌过期”下,单击“轮换”。

  6. 在“轮换令牌”对话框中,将令牌设置为立即过期或者在设置的时间段后过期。 有关何时使现有令牌过期的建议,请参阅令牌安全注意事项

  7. 单击“轮换”。

  8. 在“详细信息”选项卡上,复制新的“激活链接”,并通过安全通道与接收者共享该链接。 请参阅步骤 2:获取激活链接

CLI

  1. 使用 Databricks CLI 运行以下命令。 替换占位符值替:

    • <recipient-name>:接收者的名称。
    • <expiration-seconds>:现有接收者令牌过期之前的秒数。 在此期间,现有令牌将继续有效。 值为 0 表示现有令牌立即过期。 有关何时使现有令牌过期的建议,请参阅令牌安全注意事项
    databricks recipients rotate-token \
    <recipient-name> \
    <expiration-seconds>
    
  2. 获取接收者的新激活链接并通过安全通道与接收者共享。 请参阅步骤 2:获取激活链接

修改接收者令牌生存期

如果需要修改 Unity Catalog 元存储的默认接收者令牌生存期,可以使用目录资源管理器或 Databricks Unity Catalog CLI。

注意

更改元存储的默认接收者令牌生存期时,现有接收者的接收者令牌生存期不会自动更新。 若要为给定的接收者应用新的令牌生存期,必须轮换其令牌。 请参阅管理接收者令牌(开放共享)

所需权限:帐户管理员

目录资源管理器

  1. 登录到帐户控制台
  2. 在边栏中,单击 “目录”图标“目录”
  3. 单击元存储名称。
  4. 在“Delta Sharing 收件人令牌生存期”下,单击“编辑”
  5. 启用“设置有效期限”。
  6. 输入秒数、分钟数、小时数或天数,然后选择度量单位。
  7. 单击“ 保存”。

如果禁用“设置有效期限”,接收者令牌将不会过期。 Databricks 建议为令牌配置有效期限。

CLI

使用 Databricks CLI 运行以下命令。 将 12a345b6-7890-1cd2-3456-e789f0a12b34 替换为元存储 UUID,并将 86400 替换为接收者令牌过期之前的秒数。 如果将此值设置为 0,则接收者令牌不会过期。 Databricks 建议为令牌配置有效期限。

databricks metastores update \
12a345b6-7890-1cd2-3456-e789f0a12b34 \
--delta-sharing-recipient-token-lifetime-in-seconds 86400

(可选)使用访问列表限制接收者访问权限

配置接收者对象时,可以仅限接收者访问受限的一组 IP 地址。 请参阅使用 IP 访问列表限制 Delta Sharing 接收者访问权限(开放共享)

管理接收者属性

接收者对象包括可用于细化数据共享访问权限的预定义属性。 例如,可以使用它们执行以下操作:

  • 与不同的接收者共享不同的表分区,以便能够与多个接收者使用相同的共享,同时在他们之间保留数据边界。
  • 共享可基于收件人属性来限制收件人对表数据的行或列级访问权限的动态视图。

还可以创建自定义属性。

预定义属性以 databricks. 开头,其中包括:

  • databricks.accountId:数据接收者所属的 Azure Databricks 帐户(仅适用于 Databricks 到 Databricks 共享)。
  • databricks.metastoreId:数据接收者所属的 Unity Catalog 元存储(仅适用于 Databricks 到 Databricks 共享)。
  • databricks.name:数据接收者的名称。

例如,可能有价值的自定义属性包括 country。 例如,如果将自定义属性 'country' = 'us' 附加到接收者,则可以按国家/地区对表数据进行分区,并仅与分配了该属性的接收者共享包含 US 数据的行。 还可共享可基于收件人属性来限制行或列级访问权限的动态视图。 如需更详尽的示例,请参阅使用收件人属性执行分区筛选在共享中添加动态视图以筛选行和列

要求

Databricks Runtime 12.2 及更高版本支持接收者属性。

在创建或更新接收者时添加属性

可以在创建接收者时添加属性,或更新现有接收者的属性。 可以使用目录资源管理器、Databricks Unity Catalog CLI,或者 Azure Databricks 笔记本或 Databricks SQL 查询编辑器中的 SQL 命令。

所需的权限:元存储管理员,或者对 Unity Catalog 元存储拥有 CREATE RECIPIENT 特权的用户。

目录资源管理器

使用目录资源管理器创建更新接收者时,请通过以下操作添加或更新自定义属性:

  1. 转到“接收者详细信息”页。

    如果你正在创建新的接收者,在单击“创建”后会进入此页。 如果要更新某个现有收件人,可以通过单击 齿轮图标 齿轮图标 >“Delta Sharing”>“由我共享的内容”>“收件人”并选择该收件人来转到此页

  2. 单击“编辑属性”>“+添加属性”。

  3. 输入属性名称(“键”)和“值”。

    例如,如果你要按国家/地区筛选共享数据并仅与此接收者共享 US 数据,可以创建一个名为“country”且值为“US”的键。

  4. 单击“保存”。

SQL

若要在创建接收者时添加自定义属性,请在笔记本或 Databricks SQL 查询编辑器中运行以下命令:

CREATE RECIPIENT [IF NOT EXISTS] <recipient-name>
[USING ID '<sharing-identifier>'] /* Skip this if you are using open sharing */
[COMMENT "<comment>"]
PROPERTIES ( '<property-key>' = '<property-value>' [, ...] );

<property-key> 可以是字符串字面量或标识符。 <property-value> 必须是字符串字面量。

例如:

CREATE RECIPIENT acme PROPERTIES ('country' = 'us', 'partner_id' = '001');

若要添加、编辑或删除现有接收者的自定义属性,请运行以下命令之一:

ALTER RECIPIENT <recipient-name> SET PROPERTIES ( '<property-key>' = '<property-value>' [, ...] );

ALTER RECIPIENT <recipient-name> UNSET PROPERTIES ( '<property-key>' );

CLI

若要在创建接收者时添加自定义属性,请使用 Databricks CLI 运行以下命令。 替换占位符值替:

  • <recipient-name>:接收者的名称。
  • <property-key> 可以是字符串字面量或标识符。
  • <property-value> 必须是字符串字面量。
databricks recipients create \
--json='{
  "name": "<recipient-name>",
  "properties_kvpairs": {
    "properties": {
      "<property-key>": "<property-value>",
    }
  }
}'

例如:

databricks recipients create \
--json='{
  "name": "<recipient-name>",
  "properties_kvpairs": {
    "properties": {
      "country": "us",
      "partner_id":"001"
    }
  }
}'

若要添加或编辑现有接收者的自定义属性,请使用 update 而不是 create

databricks recipients update \
--json='{
  "name": "<recipient-name>",
  "properties_kvpairs": {
    "properties": {
      "country": "us",
      "partner_id":"001"
    }
  }
}'

查看接收者属性

若要查看接收者属性,请按照查看接收者详细信息中的说明操作。

删除接收者

若要删除接收者,可以使用目录资源管理器、Databricks Unity Catalog CLI,或者 Azure Databricks 笔记本或 Databricks SQL 查询编辑器中的 DROP RECIPIENT SQL 命令。 必须是接收者对象所有者才能删除接收者。

删除某个接收者时,该接收者所代表的用户将不再可以访问共享数据。 该接收者在开放共享方案中使用的令牌将会失效。

所需的权限:接收者对象所有者。

目录资源管理器

  1. 在 Azure Databricks 工作区中,单击 “目录”图标目录”。

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

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

  3. 在“由我共享的内容”选项卡上,单击“收件人”并选择收件人

  4. 在“接收者”选项卡上,查找并选择接收者。

  5. 单击 Kebab 菜单 kebab 菜单并选择“删除”。

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

SQL

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

DROP RECIPIENT [IF EXISTS] <recipient-name>;

CLI

使用 Databricks CLI 运行以下命令。

databricks recipients delete <recipient-name>