Unity Catalog 中的特权和安全对象

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

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

有关如何管理 Unity Catalog 中特权的详细信息,请参阅管理 Unity Catalog 中的特权

注意

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

安全对象

安全对象是在 Unity Catalog 元存储中定义的对象,可以在其上向主体授予特权。 有关 Unity 目录安全对象的完整列表以及可对其授予的权限,请参阅 Unity Catalog 特权和安全对象

若要管理对任何对象的特权,你必须是其所有者。

语法

securable_object
  { CATALOG [ catalog_name ] |
    CONNECTION connection_name |
    CLEAN ROOM clean_room_name |
    EXTERNAL LOCATION location_name |
    FUNCTION function_name |
    METASTORE |
    SCHEMA schema_name |
    SHARE share_name |
    [ STORAGE | SERVICE ] 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

    控制对用户定义的函数或 MLflow 注册模型的访问。

  • MATERIALIZED VIEWview_name

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

  • METASTORE

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

  • SCHEMAschema_name

    控制对架构的访问。

  • [ STORAGE | SERVICE ] CREDENTIALcredential_name

    控制对凭证的访问。

    关键字 STORAGESERVICE勾选“是” Databricks Runtime 15.4 及更高版本)是可选的。

  • 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`;