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 元存储中定义的对象,可以在其上向主体授予特权。 有关 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 CREDENTIAL credential_name |
[ TABLE ] table_name |
MATERIALIZED VIEW view_name |
VIEW view_name |
VOLUME volume_name
}
还可以指定 SERVER
而不是 CONNECTION
,指定 DATABASE
而不是 SCHEMA
。
parameters
CATALOG
catalog_name控制对整个数据目录的访问。
CONNECTION
connection_name控制对连接的访问。
EXTERNAL LOCATION
location_name控制对外部位置的访问。
FUNCTION
function_name控制对用户定义的函数或 MLflow 注册模型的访问。
MATERIALIZED VIEW
view_name控制对具体化视图的访问。
METASTORE
控制对附加到工作区的 Unity Catalog 元存储的访问。 管理元对存储的特权时,SQL 命令中请勿包含元存储名。 Unity Catalog 会授予或撤销对附加到工作区的元存储的特权。
SCHEMA
schema_name控制对架构的访问。
STORAGE CREDENTIAL
credential_name控制对存储凭据的访问。
SHARE
share_nameTABLE
table_name控制对托管表或外部表的访问。 如果找不到表,Azure Databricks 会引发 TABLE_OR_VIEW_NOT_FOUND 错误。
VIEW
view_name控制对视图的访问。 如果找不到视图,Azure Databricks 会引发 TABLE_OR_VIEW_NOT_FOUND 错误。
VOLUME
volume_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`;