共用方式為


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