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 目錄 模式 功能 視圖
創建 是的 是的
修改 是的 是的 是的 是的
READ_METADATA 是的 是的 是的 是的
選擇 是的 是的 是的 是的 是的 是的 是的
使用 是的 是的
  • ALL PRIVILEGES

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

  • CREATE

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

  • MODIFY

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