Unity Catalog 中的管理员权限

Azure Databricks具有管理员角色。 从 Unity 目录权限的角度来看,最重要的三个是帐户管理员、工作区管理员和元存储管理员。 所有部署都需要帐户管理员和工作区管理员,元存储管理员角色是可选的。 了解每个角色的责任有助于分配具有适当范围的管理员。

  • Account 管理员在Azure Databricks帐户级别运行。 它们创建并链接元存储和工作区,并可以分配管理员角色。
  • 工作区管理员 在单个工作区中运行。 它们管理工作区成员身份、作业和工作区对象。
  • 元存储管理员(可选) 在单个 Unity 目录元存储中运行。 它们控制数据访问、所有权和顶级 Unity 目录安全对象。

Unity 目录帐户和管理员概述

管理员角色一目了然

管理员角色 Scope Required? 主要用途
帐户管理员 整个 Azure Databricks 帐户 创建元存储和工作区,将元存储链接到工作区,分配管理员角色
工作区管理员 单个工作区 管理工作区成员身份、作业所有权和工作区对象;创建目录和其他顶级 Unity 目录安全对象
元存储管理员 单个 Unity 目录元存储(每个云区域一个) 否(可选) 创建和管理顶级 Unity 目录安全对象:目录、连接、外部位置和其他元存储对象

注意

帐户管理员和元存储管理员是单独的角色。 当帐户管理员创建元存储时,默认情况下,它们将成为其初始元存储管理员。 然后,他们可以将元存储管理员角色分配给其他用户、组或服务主体,并自行放弃。

帐户管理员

帐户管理员是一个高特权角色,应该谨慎分配。 帐户管理员拥有对整个 Azure Databricks 帐户的权限,其中包括以下关键功能:

能力 Description
创建元存储 创建元存储,并默认成为初始元存储管理员
创建工作区 在帐户中创建和管理工作区
将元存储链接到工作区 将元存储与特定工作区相关联
分配帐户管理员角色 将帐户管理员角色委派给任何用户
分配工作区管理员角色 向帐户中任何工作区的任何用户授予工作区管理员角色
分配(可选)元存储管理员角色 将(可选) 元存储管理员角色 分配给用户、服务主体或组
授予对元存储的权限 在元存储级别管理权限
为元存储启用增量共享 为元存储启用 增量共享 功能
配置存储凭据 设置用于访问云存储的存储凭据

有关详细信息,请参阅什么是帐户管理员?

若要建立第一个 Azure Databricks 帐户管理员,请参阅建立第一个帐户管理员

工作区管理员

工作区管理员是一个高特权角色,应该谨慎分配。 工作区管理员在单个工作区中具有管理员权限,其中包括以下关键功能:

能力 Description
创建目录和其他顶级 Unity 目录安全对象 (适用于 2023 年 11 月 9 日之后创建的工作区) 创建目录、外部位置、连接和其他元存储级对象。 当为 Unity 目录自动启用工作区列表时,请参阅工作区管理员权限
管理工作区成员身份 将用户、服务主体和组添加到工作区
分配工作区管理员角色 将工作区管理员角色分配给用户、服务主体或组
管理作业所有权 控制作业所有权。 请参阅控制对作业的访问
管理作业 运行方式 设置 配置作业执行标识。 请参阅 配置作业运行的“以指定用户身份运行”选项
查看和管理工作区对象 访问和控制笔记本、仪表板、查询和其他工作区对象。 请参阅访问控制列表

有关详细信息,请参阅什么是工作区管理员?

帐户管理员可以使用 RestrictWorkspaceAdmins 此设置限制工作区管理员权限。 请参阅限制工作区管理员

自动为 Unity Catalog 启用工作区时的工作区管理员权限

如果工作区已自动为 Unity 目录启用(适用于 2023 年 11 月 9 日之后创建的所有工作区),则工作区默认附加到元存储。 有关详细信息,请参阅《自动启用 Unity Catalog》。 此外,默认情况下,工作区管理员在附加的元存储上具有以下权限:

  • CREATE CATALOG
  • CREATE CLEAN ROOM
  • CREATE EXTERNAL LOCATION
  • CREATE SERVICE CREDENTIAL
  • CREATE STORAGE CREDENTIAL
  • CREATE CONNECTION
  • CREATE SHARE
  • CREATE RECIPIENT
  • CREATE PROVIDER
  • CREATE MATERIALIZED VIEW

注意

这些权限授予在帐户控制台的元存储 权限 选项卡中可见。 Azure Databricks 使用名为 _workspace_admins_databricks_<account_id>_workspace_<workspace_id>自动生成的系统组来表示它们。

如果为工作区预配了工作区目录,则工作区管理员是工作区目录的默认所有者。 此目录的所有权授予以下权限:

  • 管理工作区目录中任何对象的特权或转移其所有权。

    这包括向自己授予对目录中所有数据的读写权限(默认情况下没有直接访问权限;授予权限会进行审核记录)。

  • 转移工作区目录本身的所有权。

所有工作区用户会收到对工作区目录的 USE CATALOG 权限。 工作区用户还会收到对目录中的 USE SCHEMA 架构的 CREATE TABLECREATE VOLUMECREATE MODELCREATE FUNCTIONCREATE MATERIALIZED VIEWdefault 特权。

注意

附加元存储和工作区目录上授予的默认特权不会在工作区之间进行维护(例如,如果工作区目录也绑定到另一个工作区)。

元存储管理员

元存储管理员是 Unity Catalog 中的可选但高特权用户或组。 元存储管理员具有来自两个源的权限:角色授予的默认特权,以及所有权特权,因为它们是元存储的所有者。

何时分配元存储管理员

对于在 2023 年 11 月 9 日之后创建的工作区,元存储管理员角色是可选的。 这是因为工作区管理员默认会收到足够的元存储级权限(在 为 Unity 目录自动启用工作区时,请参阅工作区管理员权限)。 但是,如果需要执行以下操作,则必须分配元存储管理员:

默认元存储管理员权限

默认情况下,元存储管理员对元存储具有以下权限:

特权 Description
CREATE CATALOG 在元存储中创建目录
CREATE CONNECTION 在 Lakehouse 联合身份验证方案中创建与外部数据库的连接
CREATE EXTERNAL LOCATION 创建 外部位置
CREATE SERVICE CREDENTIAL 创建 服务凭据
CREATE STORAGE CREDENTIAL 创建 存储凭据
CREATE FOREIGN CATALOG 在 Lakehouse 联合方案中使用与外部数据库的连接创建外部目录
CREATE SHARE 增量共享 中创建共享作为数据提供程序
CREATE RECIPIENT 增量共享中创建收件人 作为数据提供程序
CREATE PROVIDER 以数据收件人身份在增量共享中创建提供程序
CREATE MATERIALIZED VIEW 创建 具体化视图
MANAGE ALLOWLIST 更新管理对 init 脚本和库的群集访问权限的允许列表

所有权特权

作为元存储的所有者,元存储管理员具有以下权限:

特权 Description
管理特权和转让所有权 管理元存储中任何对象的特权或转移所有权,包括存储凭据、外部位置、连接、共享、收件人和提供程序
授予对数据的访问权限 向任何人授予对元存储中任何数据的读取和写入访问权限。 此功能是间接的,因为元存储管理员可以将任何对象的所有权转让给自己。 默认情况下没有直接访问权限。 权限授予是审核记录的。
管理对象元数据 读取和更新元存储中所有对象的元数据
管理标签 在元存储中的所有对象上设置标记
配置访问请求目标 在元存储中启用默认访问请求目标
删除元存储 删除元存储

谁具有初始元存储管理员权限?

如果帐户管理员手动创建了元存储,则该帐户管理员就是元存储的初始所有者和元存储管理员。2023 年 11 月 9 日之前创建的所有元存储都是由帐户管理员手动创建的。

如果元存储已预配为自动 Unity Catalog 启用的一部分,则无需元存储管理员即可创建元存储。在这种情况下,工作区管理员会自动获得可将元存储管理员设为可选的权限。 如果需要,帐户管理员可以将元存储管理员角色分配给用户、服务主体或组。 强烈建议使用组。 请参阅《自动启用 Unity Catalog》。

分配元存储管理员

元存储管理员角色具有高度权限,分配时应谨慎操作。 它是可选的。

帐户管理员可以分配元存储管理员角色。 Databricks 建议任命组为元存储管理员。通过执行此操作,组的任何成员会自动成为元存储管理员。

要将元存储管理员角色分配给组,请执行以下操作:

  1. 作为帐户管理员,登录到帐户控制台

  2. 单击 “数据”图标。目录

  3. 单击元存储的名称以打开其属性。

  4. 在“元存储管理员”下,单击“编辑”。

  5. 从下拉列表中选择一个组。 可以在字段中输入文本以搜索选项。

  6. 单击“保存”。

重要

元存储管理员分配变更可能需要多达 30 秒才能反映在你的帐户中,并且在某些工作区中生效所需的时间可能比其他工作区要长。 此延迟是由缓存协议造成的。