共用方式為


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

    控制基礎文件系統的存取。

  • CATALOGcatalog_name

    控制整個資料目錄的存取。

  • { SCHEMA | DATABASE }schema_name

    控制架構的存取。

  • FUNCTIONfunction_name

    控制具名函式的存取。

  • [ TABLE ]table_name

    控制受控或外部數據表的存取。

  • VIEWview_name

    控制對 SQL 檢視的存取。

繼承模型

Hive 中繼存放區中的安全性實體對像是階層式物件,且許可權會向下繼承。 這表示授與或拒絕目錄 CATALOG 內所有架構的許可權會自動授與或拒絕許可權。 同樣地,在架構物件上授與的許可權是由該架構中的所有物件繼承。 此模式適用於所有安全性實體物件。

如果您拒絕數據表上的用戶許可權,則使用者無法藉由嘗試列出架構中的所有數據表來查看數據表。 如果您拒絕架構上的用戶許可權,則使用者無法藉由嘗試列出目錄中的所有架構,來查看架構是否存在。

許可權類型

下表顯示哪些許可權與哪些安全性實體對象相關聯。

權限類型 ANONYMOUS 函式 ANY FILE 目錄 SCHEMA FUNCTION TABLE VIEW
CREATE Yes
MODIFY Yes .是 .是 Yes
READ_METADATA Yes .是 .是 Yes
SELECT Yes .是 .是 .是 .是 .是 Yes
USAGE Yes Yes
  • ALL PRIVILEGES

    用來授與或撤銷適用於安全性實體及其子物件的所有許可權,而不需明確指定這些許可權。 這會擴充至進行權限檢查時的所有可用權限。

  • CREATE

    在目錄或架構內建立物件。

  • MODIFY

    COPY INTO、UPDATE DELETEINSERTMERGE 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

    直接 COPY INTO 檔案由 記憶體認證外部位置控管。

範例

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