Unity 目录设置指南

本页介绍新Azure Databricks工作区中工作区管理员的初始 Unity 目录设置,包括:

  • 确认您的工作区已启用 Unity Catalog
  • 管理工作区访问权限和身份
  • 创建符合 Unity 目录的计算资源
  • 为数据创建目录和架构
  • 向用户授予所需的权限

在您开始之前

在开始之前,请熟悉以下 Unity 目录概念:

  • 元存储:顶级 Unity 目录容器,范围限定为单个云区域。 它保存所有 安全对象:目录、存储凭据、外部位置等。 请参阅 Metastore
  • 目录:元存储中最高级别的数据容器对象。 目录保存架构,而架构又包含表、视图、卷和函数。 请参阅 目录
  • 管理员角色:Unity 目录有三个主要管理员角色:帐户管理员、工作区管理员和元存储管理员,每个角色具有不同的范围和职责。 请参阅 Unity Catalog 中的管理员权限

你还需要以下内容:

  • 高级计划上的 Azure Databricks 工作区。
  • 工作区管理员 权限。 在以下情况下,可能需要 帐户管理员 权限:
    • 如果您的工作区尚无计算资源,则您需要具备账户管理员权限,才能通过 步骤 1:确认您的工作区已启用 Unity Catalog 中的账户控制台来验证是否已启用 Unity Catalog。
    • 如果您的工作区尚未附加到 Unity Catalog 元存储,则需要账户管理员权限才能将其附加到该元存储。
    • 如果元存储不存在,则需要帐户管理员权限才能创建它。

步骤 1:确认你的工作区已启用 Unity Catalog

请使用以下任一方法确认您的工作区已附加到 Unity Catalog 元存储。

使用帐户控制台

此方法需要帐户管理员权限。

  1. 以 Azure Databricks 帐户管理员身份登录到帐户控制台。
  2. 单击 “工作区”图标。工作区
  3. 找到你的工作区并检查元存储列。 如果存在 metastore 名称,则表示你的工作区已启用 Unity Catalog。

运行 SQL 查询

此方法不需要管理员权限,但需要符合 Unity 目录的计算资源。 步骤 3:创建符合 Unity 目录的计算 指南,指导你创建符合 UC 的计算资源。

在 SQL 查询编辑器或附加到计算资源的笔记本中运行以下命令:

SELECT CURRENT_METASTORE();

如果查询返回元存储 ID,则表示你的工作区已启用 Unity Catalog。

当前元存储输出

如果未为 Unity 目录启用工作区,请参阅 将Azure Databricks工作区更新到 Unity 目录

步骤 2:管理工作区访问权限和身份

工作区管理员可以添加用户和组、分配管理员角色以及管理服务主体。

添加用户

添加需要访问此工作区的单个用户。 有关说明,请参阅 “管理用户”。

将用户组织成组

Databricks 建议通过组而不是单个用户管理访问权限。 向组授予权限会将其应用于所有成员,这可减少团队增长时的管理开销。

  • 如果贵组织在身份提供商 (IdP) 中已有组:请使用自动身份管理或 SCIM 预配将其同步到 Azure Databricks,以便组成员关系自动保持同步。 请参阅 自动标识管理
  • 如果您还没有组:作为工作区管理员,请转到 设置>身份和访问>管理(位于 旁边),以创建帐户级别的组。 请参阅管理组

分配管理员角色

工作区管理员可以 执行大多数日常管理任务:添加和删除用户、管理计算、配置工作区设置以及授予对数据的访问权限。 此角色适用于负责维护工作区的中心数据平台或 IT 团队成员。 对接收此角色的人员有选择性。 工作区管理员对工作区资源和设置具有广泛的访问权限。

通常,工作区管理员角色是唯一需要分配的管理员角色。 (可选)可以为特殊用例分配 元存储管理员 。 例如,如果需要,可以将此角色分配给专用数据管理团队或一小组高级平台工程师:

  • 将目录创建委托给非工作区管理员。
  • 管理初始化脚本和 JAR 允许列表
  • 通过Delta Sharing接收共享数据。
  • 当团队成员离开时转移对象所有权。

有关分配这些角色的说明,请参阅 Unity 目录中的管理员权限

步骤 3:创建兼容 Unity Catalog 的计算资源

若要运行 Unity 目录工作负荷,计算资源必须满足 Unity 目录安全要求。 下表显示了哪些计算类型符合性:

计算类型 符合 UC 标准
SQL 仓库
无服务器计算(笔记本、作业、管道)
群集 - 单用户访问模式
群集 - 共享访问模式
群集 - 无隔离共享访问模式

若要创建符合 UC 要求的计算资源:

作为工作区管理员,可以仅将群集创建限制为管理员,或使用群集策略允许用户创建自己的符合 Unity 目录的群集。 请参阅计算访问权限创建和管理计算策略

步骤 4:创建目录和架构

目录是 Unity 目录中数据隔离的主要单元。 所有架构、表、卷、视图和函数都位于目录中。

何时创建新目录

系统会自动为新工作区预配一个工作区目录,默认情况下,该目录以您的工作区名称命名。 若要检查是否有工作区目录,请单击“数据”图标。边栏中的目录,并查找与工作区名称匹配的目录。 如果存在,可能不需要立即创建其他目录。

随着时间的推移,请考虑在使用情况增长时创建新目录,围绕逻辑边界进行组织,例如:

  • 团队或业务部门:用于工程、财务和营销的单独目录
  • 环境:将 devstagingprod 目录分开设置,以将开发数据与生产数据隔离开
  • 项目:每个主要数据产品或计划专用目录

如果组织的数据边界已定义良好,现在可以创建目录。

创建产品目录

若要创建目录,请运行以下 SQL。

CREATE CATALOG IF NOT EXISTS <catalog-name>;

注释

此目录中的托管数据存储于元存储的默认托管存储位置。 若要使用其他位置,请指定一个 MANAGED LOCATION。 请参阅 使用 Unity 目录连接到云对象存储

然后,创建架构来组织表和其他数据对象:

CREATE SCHEMA IF NOT EXISTS <catalog-name>.<schema-name>;

有关详细说明以及如何使用 Catalog Explorer,请参阅 创建目录创建架构

步骤 5:向用户授予权限

在 Unity 目录中,默认情况下,用户无权访问数据。 工作区管理员可以向工作区中的安全对象授予权限。 Databricks 建议向组而不是单个用户授予权限。 这样一来,随着团队规模的扩大,访问权限会更易于管理。

启用数据发现

Azure Databricks 建议向 All account users 组授予对所有目录的 BROWSE 权限。 BROWSE 允许用户在目录资源管理器中查看对象是否存在并查看其元数据,而无需授予对基础数据的访问权限。 这样,用户便可以发现数据和请求访问权限,而无需管理员先发制人地授予权限。

GRANT BROWSE ON CATALOG <catalog-name> TO `account users`;

授予数据访问权限

若要访问 Unity 目录中的数据,用户通常需要对操作(例如 SELECT 读取表)和适当的 使用权限 (如 USE CATALOG 父目录和 USE SCHEMA 父架构)具有特定的特权。 请参阅 Unity 目录权限模型概念

仅向需要访问特定目录和架构的用户和组授予这些权限。 例如,若要授予对架构的只读访问权限,请使用以下 SQL:

GRANT USE CATALOG ON CATALOG <catalog-name> TO `<group-name>`;
GRANT USE SCHEMA ON SCHEMA <catalog-name>.<schema-name> TO `<group-name>`;
GRANT SELECT ON SCHEMA <catalog-name>.<schema-name> TO `<group-name>`;

对于读写权限:

GRANT USE CATALOG ON CATALOG <catalog-name> TO `<group-name>`;
GRANT USE SCHEMA ON SCHEMA <catalog-name>.<schema-name> TO `<group-name>`;
GRANT SELECT, MODIFY ON SCHEMA <catalog-name>.<schema-name> TO `<group-name>`;

访问模式随时间而变化。 在 Unity 目录中管理特权时,请使用以下页面作为参考:

设置清单

如果已完成所有五个步骤,Unity 目录将在工作区中设置,用户可以开始使用数据。 使用以下清单确认一切已到位:

后续步骤

设置 Unity 目录后,可以开始将更高级的治理功能应用到工作区。

数据分类

数据分类 使用 AI 代理自动扫描目录并标记敏感数据,例如 PII、财务信息和凭据。 分类后,标记可以直接与 ABAC 策略集成,使你可以根据数据实际包含的内容应用治理控制,而不是按对象管理访问对象。

数据分类结果