升级到特权继承

如果你在公共预览期(2022 年 8 月 25 日之前)创建了 Unity Catalog 元存储,可以升级到特权模型版本 1.0, 以利用特权继承。 在升级特权模型之前,现有工作负载将继续按原样运行。 Databricks 建议升级到特权模型版本 1.0,以获得特权继承和新功能的好处。

特权模型版本 1.0 中的差异

Unity Catalog 中的特权模型 v1.0 与公共预览版特权模型存在以下差异:

  • 特权继承:在特权模型 v1.0 中,特权在子安全对象上继承。 这意味着在授予对目录的某个特权时,会自动向目录中的所有当前架构和未来架构授予该特权。 同样,对架构授予的特权由该架构中所有当前和未来对象继承。 在预览模型中,子安全对象不会继承特权。 有关特权继承的详细信息,请参阅继承模型

  • ALL PRIVILEGES 评估方式不同:在公共预览版特权模型中,ALL PRIVILEGES 在授予特权时向主体授予所有可用特权。 在特权模型 v1.0 中,ALL PRIVILEGES 权限在进行权限检查时扩展到所有可用特权。

    在 Privilege Model v1.0 中,当撤销 ALL PRIVILEGES 时,仅撤销 ALL PRIVILEGES 特权本身。 用户保留单独授予他们的任何其他特权。

  • CREATE TABLE 更新为 CREATE EXTERNAL TABLECREATE TABLE 权限不再适用于创建外部表所需的外部位置或存储凭据。 在特权模型 v1.0 中,改为对外部位置和存储凭据授予 CREATE EXTERNAL TABLE 特权,以允许用户使用该外部位置或存储凭据创建外部表。

  • CREATE 已删除:CREATE 权限已删除,并替换为以下更具体的特权:CREATE CATALOGCREATE EXTERNAL LOCATIONCREATE FUNCTIONCREATE SCHEMACREATE TABLECREATE MANAGED STORAGE

  • USAGE 已删除:USAGE 权限已删除并替换为以下更具体的特权:USE CATALOGUSE SCHEMA

升级到特权模型版本 1.0

警告

不能撤消此操作。

  1. 将引用 Unity Catalog 的所有工作负载升级为使用 Databricks Runtime 11.3 LTS 或更高版本。

    必须升级所有群集才能使用 Databricks Runtime 11.3 LTS 或更高版本,并且必须重启任何正在运行的 SQL 仓库。 如果跳过此步骤,在完成升级后,将拒绝旧版 Databricks Runtime 上的工作负载。

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

  3. 点击Catalog icon目录

  4. 单击元存储名称。

  5. 在“特权模型”下,单击“升级”

  6. 单击“升级”

如果未看到升级选项,则 Unity Catalog 元存储已在使用特权模型 1.0。

升级 SQL 命令(可选)

Databricks 将继续支持使用旧特权模型表示的授权,并自动将其对应到特权模型 v1.0 中的等效授权。 但是,通过 SHOW GRANTSinformation_schema 数据返回的特权将继续引用特权模型 v1.0。 Databricks 建议升级现有的执行授权的代码,以引用更新的特权模型。

  • 将外部位置或存储凭据上的 CREATE TABLE 特权替换为 CREATE EXTERNAL TABLE 特权。
  • CREATE 权限替换为具体特权 CREATE CATALOGCREATE EXTERNAL LOCATIONCREATE FUNCTIONCREATE SCHEMACREATE TABLE
  • USAGE 权限替换为具体特权 USE CATALOGUSE SCHEMA

有关 Unity Catalog 特权模型的详细信息,请参阅 Unity Catalog 特权和安全对象