管理 Unity Catalog 对象所有权

Unity Catalog 中的每个安全对象都有一个所有者。 所有者可以是任何主体:用户、服务主体或帐户组。 创建对象的主体将成为其初始所有者。 对象的所有者拥有该对象的所有权限(例如对表的 SELECTMODIFY),并且有权向其他主体授予权限。 对象的所有者能够删除对象。

所有者权限

对象的所有者将自动被授予对该对象的所有权限。 此外,对象所有者可以授予对对象本身及其所有子对象的权限。 这意味着架构的所有者不会自动拥有架构中表的所有权限,但可以向自己授予对架构中表的权限。

元存储和目录所有权

元存储管理员是元存储的所有者。 元存储管理员角色是可选项。 元存储管理员可以通过转移元存储管理员角色来重新分配元存储的所有权,请参阅分配元存储管理员

如果自动为 Unity Catalog 启用了工作区,则该工作区会默认附加到元存储,并会在元存储中为工作区创建工作区目录。 工作区管理员是默认所有者,而且可以重新分配工作区目录的所有权。 在这些工作区中,默认情况下不会分配元存储管理员,但帐户管理员可以根据需要向其他用户授予元存储管理员权限。 请参阅元存储管理员

有关 Unity Catalog 中的管理员权限的详细信息,请参阅 Unity Catalog 中的管理员权限

查看对象所有者

目录资源管理器

  1. 在 Azure Databricks 工作区中,单击“目录”图标“目录”。
  2. 选择对象,例如目录、架构、表、视图、卷、外部位置或存储凭据。
  3. 单击“权限”。

Sql

在笔记本或 SQL 查询编辑器中运行以下 SQL 命令。 替换占位符值替:

  • <securable-type>:安全对象的类型,例如 CATALOGTABLE
  • <catalog>:表或视图的父目录。
  • <schema>:表或视图的父架构。
  • <securable-name>:安全对象(例如表或视图)的名称。
DESCRIBE <securable-type> EXTENDED <catalog>.<schema>.<securable-name>;

转让所有权

对象所有权可由当前所有者、元存储管理员或容器(架构的目录、表的架构)所有者转让给其他主体。 Delta Sharing 共享对象是一个例外:具有 USE SHARESET SHARE PERMISSION 的主体也可以转移共享所有权。

目录资源管理器

  1. 在 Azure Databricks 工作区中,单击“目录”图标“目录”。
  2. 选择对象,例如目录、架构、表、视图、外部位置或存储凭据。
  3. 单击“权限”。
  4. 单击“所有者”旁边的蓝色铅笔。
  5. 从下拉列表中选择组、用户或服务主体。
  6. 单击“ 保存”。

Sql

在笔记本或 SQL 查询编辑器中运行以下 SQL 命令。 替换占位符值替:

  • <securable-type>:安全对象的类型,例如 CATALOGTABLE。 此命令不支持 METASTORE 作为安全对象。

    • <securable-name>:安全对象的名称。
    • <principal> 是用户、服务主体(由其 applicationId 值表示)或组。 必须用反引号 (` `) 将包含特殊字符的用户、服务主体和组名括起来。 请参阅主体
    ALTER <securable-type> <securable-name> OWNER TO <principal>;
    

    例如,若要将表的所有权转让给 accounting 组:

    ALTER TABLE orders OWNER TO `accounting`;