Hive 中繼存放區中的許可權和安全性實體物件
適用於:Databricks SQL
Databricks Runtime
許可權模型和可保護物件會根據您使用的是 Unity Catalog 中繼資料庫還是舊版 Hive 中繼資料庫而有所不同。 本文說明舊版Hive中繼存放區的許可權模型。 如果您使用 Unity Catalog,請參閱 Unity Catalog中的
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 | CATALOG | SCHEMA | FUNCTION | TABLE | VIEW |
---|---|---|---|---|---|---|---|
CREATE | 是 | 是 | |||||
MODIFY | 是 | 是 | 是 | 是 | |||
READ_METADATA | 是 | 是 | 是 | 是 | |||
SELECT | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
USAGE | 是 | 是 |
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`;