Hive 中繼存放區中的許可權和安全性實體物件
適用于: Databricks SQL Databricks Runtime
許可權是授與 主體 以在中繼存放區中操作 安全性實體物件 的許可權。
許可權模型和安全性實體物件會根據您使用的是 Unity 目錄中繼存放區或舊版 Hive 中繼存放區而有所不同。 本文說明舊版 Hive 中繼存放區的許可權模型。 如果您使用 Unity 目錄,請參閱 Unity 目錄中的許可權和安全性實體物件。
Hive 中繼存放區中的安全性實體物件
安全性實體物件是在中繼存放區中定義的物件,可授與 主體的許可權。
若要管理任何物件的許可權,您必須是其擁有者或系統管理員。
語法
securable_object
{ ANY FILE |
CATALOG [ catalog_name ] |
{ SCHEMA | DATABASE } schema_name |
FUNCTION function_name |
[ TABLE ] table_name |
VIEW view_name
}
參數
ANY FILE
控制基礎檔案系統的存取。
CATALOG
catalog_name控制整個資料目錄的存取。
{ SCHEMA | DATABASE }
schema_name控制架構的存取。
FUNCTION
function_name控制具名函式的存取。
[ TABLE ]
table_name控制受控或外部資料表的存取。
VIEW
view_name控制對 SQL 檢視的存取。
繼承模型
Hive 中繼存放區中的安全性實體物件是階層式,且許可權會向下繼承。 這表示授與或拒絕 上 CATALOG
的許可權會自動授與或拒絕目錄中所有架構的許可權。 同樣地,授與架構物件的許可權會由該架構中的所有物件繼承。 此模式適用于所有安全性實體物件。
如果您拒絕資料表的使用者許可權,則使用者無法藉由嘗試列出架構中的所有資料表來查看資料表。 如果您拒絕架構的使用者許可權,則使用者無法藉由嘗試列出目錄中的所有架構來查看架構是否存在。
許可權類型
下表顯示哪些許可權與哪些安全性實體物件相關聯。
許可權類型 | ANONYMOUS 函式 | ANY FILE | 目錄 | 模式 | 功能 | 表 | 視圖 | |
---|---|---|---|---|---|---|---|---|
創建 | 是的 | 是的 | ||||||
修改 | 是的 | 是的 | 是的 | 是的 | ||||
READ_METADATA | 是的 | 是的 | 是的 | 是的 | ||||
選擇 | 是的 | 是的 | 是的 | 是的 | 是的 | 是的 | 是的 | |
使用 | 是的 | 是的 |
ALL PRIVILEGES
用來授與或撤銷適用于安全性實體及其子物件的擁有權限,而不需明確指定這些許可權。 這會擴充到進行許可權檢查時的所有可用許可權。
CREATE
在目錄或架構內建立物件。
MODIFY
COPY INTO、 UPDATEDELETE、 INSERT或 MERGE INTO 資料表 。
如果securable_object是
hive_metastore
或其內的架構,則授MODIFY
與會授MODIFY
與安全性實體物件內所有目前和未來的資料表和檢視。READ_METADATA
在SHOW中探索安全性實體物件,並在DESCRIBE中詢問物件
如果安全性實體物件是
hive_metastore
目錄或其中的架構,則READ_METADATA
授與將會授READ_METADATA
與安全性實體物件內所有目前和未來的資料表和檢視。READ FILES
SELECT
查詢資料表或檢視表、叫用使用者定義或匿名函式,或選取
ANY FILE
。 使用者需要SELECT
資料表、檢視或函式,以及USAGE
物件的架構和目錄。如果安全性實體物件是
hive_metastore
或 其中的架構,則SELECT
授與將會授SELECT
與安全性實體物件內所有目前和未來的資料表和檢視。USAGE
必要,但不足以參考目錄或架構中的任何物件。 主體也必須具有個別安全性實體物件的許可權。
WRITE FILES
例子
-- 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 USAGE ON SCHEMA some_schema FROM `alf@melmak.et`;