Unity Catalog 中的特权和安全对象

适用于:勾选“是” Databricks SQL 勾选“是” Databricks Runtime 勾选“是” 仅 Unity Catalog

特权是指授予主体的对元存储中的安全对象进行操作的权利。 特权模型和安全对象因你使用的是 Unity Catalog 元存储还是旧版 Hive 元存储而有所不同。 本文介绍 Unity Catalog 的特权模型。 如果使用 Hive 元存储,请参阅 Hive 元存储中的特权和安全对象

注意

本文参考特权模型 1.0 版中的 Unity Catalog 特权和继承模型。 如果在公共预览期间(2022 年 8 月 25 日之前)创建了 Unity Catalog 元存储,则你可能在使用不支持当前继承模型的早期权限模型。 可以升级到权限模型版本 1.0 来获得权限继承。 请参阅升级到特权继承

安全对象

安全对象是在 Unity Catalog 元存储中定义的对象,可以在其上向主体授予特权。 若要管理对任何对象的特权,你必须是其所有者。

语法

securable_object
  { CATALOG [ catalog_name ] |
    CONNECTION connection_name |
    EXTERNAL LOCATION location_name |
    FUNCTION function_name |
    METASTORE |
    SCHEMA schema_name |
    SHARE share_name |
    STORAGE CREDENTIAL credential_name |
    [ TABLE ] table_name |
    MATERIALIZED VIEW view_name |
    VIEW view_name |
    VOLUME volume_name
  }

还可以指定 SERVER 而不是 CONNECTION,指定 DATABASE 而不是 SCHEMA

parameters

  • CATALOGcatalog_name

    控制对整个数据目录的访问。

  • CONNECTIONconnection_name

    控制对连接的访问。

  • EXTERNAL LOCATIONlocation_name

    控制对外部位置的访问。

  • FUNCTIONfunction_name

    控制对用户定义函数的访问。

  • MATERIALIZED VIEWview_name

    重要

    此功能目前以公共预览版提供。

    控制对具体化视图的访问。

  • METASTORE

    控制对附加到工作区的 Unity Catalog 元存储的访问。 管理元对存储的特权时,SQL 命令中请勿包含元存储名。 Unity Catalog 会授予或撤销对附加到工作区的元存储的特权。

  • REGISTERED MODEL

    控制对已注册 MLflow 模型的访问。

  • SCHEMAschema_name

    控制对架构的访问。

  • STORAGE CREDENTIALcredential_name

    控制对存储凭据的访问。

  • SHAREshare_name

    控制接收方共享的访问。

  • TABLEtable_name

    控制对托管表或外部表的访问。 如果找不到表,Azure Databricks 会引发 TABLE_OR_VIEW_NOT_FOUND 错误。

  • VIEWview_name

    控制对视图的访问。 如果找不到视图,Azure Databricks 会引发 TABLE_OR_VIEW_NOT_FOUND 错误。

  • VOLUMEvolume_name

    控制对卷的访问。 如果找不到该卷,Azure Databricks 会引发错误。

权限类型

有关特权类型的列表,请参阅 Unity Catalog 特权和安全对象

示例

-- Grant a privilege to the user alf@melmak.et
> GRANT SELECT ON TABLE t TO `alf@melmak.et`;

-- Revoke a privilege from the general public group.
> REVOKE USE SCHEMA ON SCHEMA some_schema FROM `alf@melmak.et`;