適用於:
Databricks SQL
Databricks Runtime
Unity Catalog only
權限是授予一個主體在中繼存放區中對可保護的物件進行操作的權利。 權限模型和可安全控制的對象會根據您使用的是 Unity Catalog 中繼存放區或舊版 Hive 中繼存放區而有所不同。 本文說明 Unity 目錄的許可權模型。 如果您使用Hive中繼存放區,請參閱 Hive中繼存放區中的權限和可保護的物件。
如需如何在 Unity 目錄中管理許可權的詳細資訊,請參閱 在 Unity 目錄中管理許可權。
注意
本文參考 Privilege Model 1.0 版中的 Unity 目錄許可權和繼承模型。 如果您是在公開預覽期間(2022 年 8 月 25 日之前)建立了 Unity Catalog 中繼資料庫,則可能使用的是較早的權限模型,此模型不支援現在的繼承模型。 您可以升級至 Privilege Model 1.0 版以取得許可權繼承。 請參閱升級至權限繼承。
可保護的物件
可安全設定的物件是在 Unity Catalog 中繼資料存放區中定義的物件,可以將其許可權授予 主體。 關於 Unity 目錄可保護物件的完整清單及其可授予的權限,請參見 Unity 目錄權限參考。
要管理物件的權限,你必須是該物件的擁有者,或擁有 MANAGE 該物件的權限,並且擁有其父容器所需的使用權限。
語法
securable_object
{ CATALOG [ catalog_name ] |
CONNECTION connection_name |
CLEAN ROOM clean_room_name |
EXTERNAL LOCATION location_name |
EXTERNAL METADATA metadata_name |
FUNCTION function_name |
METASTORE |
PROCEDURE procedure_name |
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。
參數
CATALOGcatalog_name控制整個資料目錄的存取。
CONNECTIONconnection_name控制連線的存取。
EXTERNAL LOCATIONlocation_name控制對外部位置的存取。
EXTERNAL METADATAmetadata_name控制 外部元數據物件的 存取權,以用於自定義數據譜系設定。
FUNCTIONfunction_name控制使用者定義函式或 MLflow 註冊模型的存取。
MATERIALIZED VIEWview_name控制具體化檢視的存取。
METASTORE控制連結至工作區的 Unity 目錄中繼存放區的存取。 當您管理中繼存放區的權限時,不會在 SQL 命令中包含中繼存放區名稱。 Unity Catalog 將會對附加至工作區的 metastore 授與或撤銷許可權。
PROCEDUREprocedure_name控制使用者定義程序的存取。
如果找不到程式,Azure Databricks 就會引發錯誤。
SCHEMAschema_name控制資料庫結構的存取。
[ STORAGE | SERVICE ] CREDENTIALcredential_name控制對憑證的存取。
關鍵詞
STORAGE和SERVICE(
Databricks Runtime 15.4 和更新版本) 是選擇性的。SHAREshare_nameTABLEtable_name控制管理或外部數據表的存取。 如果找不到資料表,Azure Databricks 就會產生 TABLE_OR_VIEW_NOT_FOUND 錯誤。
VIEWview_name管理檢視的存取權限。 如果找不到檢視,Azure Databricks 就會 引發TABLE_OR_VIEW_NOT_FOUND 錯誤。
VOLUMEvolume_name控制對磁碟區的存取權限。 如果找不到該磁碟區,Azure Databricks 就會引發錯誤。
許可權類型
有關權限類型的清單,請參閱 Unity 目錄權限參考。
範例
-- 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 `account users`;
-- Grant metadata-only visibility on a schema to an auditing group.
> GRANT READ METADATA ON SCHEMA some_schema TO `auditors`;