Unity 目錄中的許可權和安全性實體物件

適用於:檢查標示為是Databricks SQL 檢查標示為是 Databricks Runtime 檢查標示為是 Unity 目錄

許可權是授與主體對中繼存放區中安全性實體物件運作的許可權。 許可權模型和安全性實體物件會根據您是否使用 Unity 目錄中繼存放區或舊版 Hive 中繼存放區而有所不同。 本文說明 Unity 目錄的許可權模型。 如果您使用Hive中繼存放區,請參閱 Hive中繼存放區中的許可權和安全性實體物件

注意

本文參考 Privilege Model 1.0 版中的 Unity 目錄許可權和繼承模型。 如果您在公開預覽期間建立 Unity 目錄中繼存放區(在 2022 年 8 月 25 日之前),請遵循 升級至許可權繼承,升級至 Privilege Model 1.0 版。

安全性實體物件

「安全性實體物件」是在 Unity 目錄中繼存放區中定義的物件,其權限可以授與主體。 若要管理任何物件的權限,您必須是其擁有者。

語法

securable_object
  { CATALOG [ catalog_name ] |
    CONNECTION connection_name |
    EXTERNAL LOCATION location_name |
    FUNCTION function_name |
    METASTORE |
    SCHEMA schema_name |
    SHARE share_name |
    STORAGE CREDENTIAL credential_name |
    [ TABLE ] table_name |
    MATERIALIZED VIEW view_name |
    VIEW view_name |
    VOLUME volume_name
  }

您也可以指定 SERVER 而不是 CONNECTION 和 ,DATABASESCHEMA而不是 。

參數

  • CATALOGcatalog_name

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

  • CONNECTIONconnection_name

    控制連線的存取。

  • EXTERNAL LOCATIONlocation_name

    控制外部位置存取。

  • FUNCTIONfunction_name

    控制使用者定義函式的存取。

  • MATERIALIZED VIEWview_name

    重要

    這項功能處於公開預覽狀態。

    控制具體化檢視的存取。

  • METASTORE

    控制連結至工作區的 Unity 目錄中繼存放區的存取。 當您管理中繼存放區的許可權時,您不會在 SQL 命令中包含中繼存放區名稱。 Unity 目錄將會授與或撤銷附加至工作區之中繼存放區的許可權。

  • REGISTERED MODEL

    控制 MLflow 已註冊模型的存取

  • SCHEMAschema_name

    控制架構的存取。

  • STORAGE CREDENTIALcredential_name

    控制記憶體認證的存取

  • SHAREshare_name

    控制共用收件者的存取。

  • TABLEtable_name

    控制受控或外部數據表的存取。 如果找不到數據表,Azure Databricks 就會 引發TABLE_OR_VIEW_NOT_FOUND 錯誤。

  • VIEWview_name

    控制檢視的存取。 如果找不到檢視,Azure Databricks 就會 引發TABLE_OR_VIEW_NOT_FOUND 錯誤。

  • VOLUMEvolume_name

    控制磁碟區的存取。 如果找不到磁碟區,Azure Databricks 就會引發錯誤。

繼承模型

Unity 目錄中的安全性實體對像是階層式物件,且許可權會向下繼承。 這表示授與目錄的許可權會自動將許可權授與目錄中所有目前和未來的架構。 同樣地,在架構上授與的許可權是由該架構中所有目前和未來的數據表和檢視所繼承。

例如,如果您將 SELECT 架構的許可權授與使用者,則用戶會自動獲授 SELECT 與架構中所有目前和未來數據表、檢視表和具體化檢視的許可權。

許可權類型

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

安全性實體 權限
Metastore CREATE CATALOGCREATE CONNECTIONCREATE EXTERNAL LOCATIONCREATE PROVIDERCREATE RECIPIENTCREATE SHARECREATE STORAGE CREDENTIALSET SHARE PERMISSIONUSE MARKETPLACE ASSETSUSE PROVIDER、、、 USE RECIPIENTUSE SHARE
目錄 ALL PRIVILEGES、、 APPLY TAGBROWSECREATE SCHEMAUSE CATALOG

所有用戶預設都會在 USE CATALOG 目錄上 main

下列許可權類型適用於目錄中的安全性實體物件。 您可以在目錄層級授與這些許可權,將它們套用至目錄中相關的目前和未來物件。

CREATE FUNCTIONCREATE TABLECREATE MODELCREATE VOLUMECREATE FOREIGN CATALOGREAD VOLUMEREFRESHWRITE VOLUMEEXECUTEMODIFY、、、 SELECTUSE SCHEMA
結構描述 ALL PRIVILEGESAPPLY TAGCREATE FUNCTIONCREATE TABLECREATE MODELCREATE VOLUME、、、 CREATE MATERIALIZED VIEWUSE SCHEMA

下列許可權類型適用於架構內的安全性實體物件。 您可以在架構層級授與這些許可權,將它們套用至架構中相關的目前和未來物件。

EXECUTE、、MODIFYSELECTREAD VOLUME、、REFRESHWRITE VOLUME
Table ALL PRIVILEGES、 、 APPLY TAGMODIFYSELECT
具體化檢視 ALL PRIVILEGES、 、 APPLY TAGREFRESHSELECT
檢視 ALL PRIVILEGES、 、 APPLY TAGSELECT
體積 ALL PRIVILEGES、 、 READ VOLUMEWRITE VOLUME
外部位置 ALL PRIVILEGESBROWSE、、CREATE EXTERNAL VOLUMECREATE EXTERNAL TABLEREAD FILES、、、 WRITE FILESCREATE MANAGED STORAGE
儲存體認證 ALL PRIVILEGES、、 CREATE EXTERNAL LOCATIONCREATE EXTERNAL TABLEREAD FILESWRITE FILES
連線 ALL PRIVILEGES、 、 CREATE FOREIGN CATALOGUSE CONNECTION
函式 ALL PRIVILEGES, EXECUTE
註冊的模型 ALL PRIVILEGES、 、 APPLY TAGEXECUTE
共用 SELECT (可以授與給 RECIPIENT)
收件者
提供者
  • APPLY TAG

    在物件上套用和編輯標記。

  • ALL PRIVILEGES

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

    ALL PRIVILEGES 被撤銷時, ALL PRIVILEGES 只會撤銷許可權本身。 使用者會保留另外授與他們的任何其他許可權。

  • BROWSE

    重要

    這項功能處於公開預覽狀態

    使用目錄總管、架構瀏覽器、搜尋結果、譜系圖形和 information_schemaREST API 來檢視物件的元數據。 使用者不需要 USE CATALOG 父目錄或 USE SCHEMA 父架構的許可權。

  • CREATE CATALOG

    在 Unity 目錄中繼存放區中建立目錄。

  • CREATE CONNECTION

    在 Unity 目錄中繼存放區中建立外部連線。

  • CREATE EXTERNAL LOCATION

    使用 記憶體認證建立外部位置。 套用至儲存體認證時,允許使用者使用儲存體認證建立外部位置。 此許可權也必須授與中繼存放區上的使用者,以允許他們在該中繼存放區中建立外部位置。

  • CREATE EXTERNAL TABLE

    使用記憶體認證或外部位置建立外部數據表。

  • CREATE EXTERNAL VOLUME

    使用外部位置建立外部磁碟區。

  • CREATE FOREIGN CATALOG

    在外部連線上建立目錄。 然後,每個外部目錄都會公開同盟目標系統中可用的架構。

  • CREATE FUNCTION

    在架構中建立函式。 使用者也需要 USE CATALOG 目錄的許可權和 USE SCHEMA 架構的許可權。

  • CREATE MANAGED STORAGE

    允許使用者指定位置,以將Managed資料表儲存在目錄或架構層級,覆寫 Unity 目錄中繼存放區的預設根記憶體。

  • CREATE MATERIALIZED VIEW

    允許使用者在架構中建立 具體化檢視 。 由於會繼承權限,也可以在目錄上授與 CREATE MATERIALIZED VIEW,讓使用者能夠在目錄中的任何現有或未來結構描述中建立資料表或檢視。

    用戶也必須具有 USE CATALOG 父目錄和 USE SCHEMA 父架構的許可權。

  • CREATE MODEL

    允許使用者在結構描述中建立 MLflow 註冊的模型。 由於繼承許可權, CREATE MODEL 也可以在目錄上授與許可權,讓用戶能夠在目錄中的任何現有或未來架構中建立已註冊的模型。

    用戶也必須具有 USE CATALOG 父目錄和 USE SCHEMA 父架構的許可權。

  • CREATE PROVIDER

    (針對差異共用資料收件者)在 Unity 目錄中繼存放區中建立提供者。

  • CREATE RECIPIENT

    (針對差異共用資料提供者)在 Unity 目錄中繼存放區中建立收件者。

  • CREATE SCHEMA

    在目錄中建立架構。 使用者也需要 USE CATALOG 目錄的許可權。

  • CREATE SHARE

    (針對差異共用資料提供者)在 Unity 目錄中繼存放區中建立共用。

  • CREATE STORAGE CREDENTIAL

    在 Unity 目錄中繼存放區中建立記憶體認證。

  • CREATE TABLE

    在架構中建立數據表或檢視表。 使用者也需要 USE CATALOG 目錄的許可權和 USE SCHEMA 架構的許可權。 若要建立外部數據表,使用者也需要 CREATE EXTERNAL TABLE 外部位置或記憶體認證的許可權。

  • CREATE VOLUME

    在架構中建立磁碟區。 使用者也需要 USE CATALOG 目錄的許可權和 USE SCHEMA 架構的許可權。 若要建立 外部磁碟區,使用者也需要 CREATE EXTERNAL VOLUME 外部位置的許可權。

  • EXECUTE

    叫用使用者定義函式。 使用者也需要 USE CATALOG 目錄的許可權和 USE SCHEMA 架構的許可權。

  • MODIFY

    COPY INTO、UPDATEDELETEINSERTMERGE INTO 數據表

  • READ FILES

    使用 記憶體認證外部位置直接查詢檔案。

  • READ VOLUME

    查詢磁碟區內的檔案。

  • REFRESH

    如果使用者在其父目錄和USE SCHEMA父架構上也有USE CATALOG具體化檢視,則允許使用者重新整理具體化檢視。 使用者也需要 USE CATALOG 目錄的許可權和 USE SCHEMA 架構的許可權。

  • SELECT

    查詢資料表或檢視表、叫用使用者定義的或匿名函式,或選取 ANY FILE。 使用者需要 SELECT 數據表、檢視或函式,以及 USE CATALOG 對象的目錄和 USE SCHEMA 對象的架構。

  • SET SHARE PERMISSION

    在 Delta Sharing 中,此許可權與 USE SHAREUSE RECIPIENT (或收件者擁有權)結合,可讓提供者使用者授與共用的收件者存取權。 結合 USE SHARE,它可讓您將共用的擁有權轉移給另一個使用者、群組或服務主體。

  • USE CATALOG

    必要,但不足以參考目錄中的任何物件。 主體也必須擁有個別安全性實體對象的許可權。 使用者不需要使用 BROWSE 許可權來讀取物件的元數據。

  • USE CONNECTION

    在中繼存放區上使用時,必須讀取外部連線上的元數據或所有外部連線。

  • USE MARKETPLACE ASSETS

    默認會針對所有 Unity 目錄中繼存放區啟用。 在 Databricks Marketplace 中,此許可權可讓使用者取得 Marketplace 列表中共用之數據產品的立即存取或要求存取權。 它也允許使用者存取提供者共用數據產品時所建立的唯讀目錄。 如果沒有此許可權,使用者將需要 CREATE CATALOGUSE PROVIDER 許可權或中繼存放區管理員角色。 這可讓您限制具有這些強大許可權的用戶數目。

  • USE PROVIDER

    在 Delta Sharing 中,為收件者使用者提供收件者中繼存放區及其共用中所有提供者的唯讀存取權。 結合許可權,此許可權可讓不是中繼存放區系統管理員的 CREATE CATALOG 收件者使用者掛接共用做為目錄。 這可讓您限制具有強大中繼存放區管理員角色的用戶數目。

  • USE RECIPIENT

    在 Delta Sharing 中,為提供者使用者提供提供者中繼存放區及其共用中所有收件者的唯讀存取權。 這可讓不是中繼存放區管理員的提供者用戶檢視收件者詳細數據、收件者驗證狀態,以及提供者與收件者共用的共享清單。

    Databricks Marketplace 中,這可讓使用者在提供者控制台中檢視清單和取用者要求。

  • USE SCHEMA

    必要,但不足以參考架構中的任何物件。 主體也必須擁有個別安全性實體對象的許可權。 使用者不需要使用 BROWSE 許可權來讀取物件的元數據。

  • USE SHARE

    在 Delta Sharing 中,為提供者使用者提供提供者中繼存放區中定義之所有共用的唯讀存取權。 這可讓不是中繼存放區管理員的提供者使用者,在共用中列出共用和列出資產(數據表和筆記本),以及共用的收件者。

    Databricks Marketplace 中,這可讓提供者用戶檢視清單中共用數據的詳細數據。

  • WRITE FILES

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

  • WRITE VOLUME

    直接 將 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 USE SCHEMA ON SCHEMA some_schema FROM `alf@melmak.et`;