Unity Catalog特權和安全對象

本文描述了Unity Catalog特權模型。要了解該模型與Hive亞穩態的不同之處,請參見與統一目錄和遺留的Hive metastore工作

請注意

本文引用了特權模型1.0版中的Unity Catalog特權和繼承模型。如果您在公開預覽期間(2022年8月25日之前)創建了Unity Catalog metastore,則可以升級到特權模型1.0版本升級到特權繼承

管理權限

特權可以由metastore管理員(對象的所有者)或包含該對象的編目或模式的所有者授予。您可以使用SQL命令管理metastore對象的權限,Unity Catalog命令行,或在數據資源管理器中。若要了解如何使用數據資源管理器管理權限,請參閱,在數據資源管理器中管理Unity目錄權限

要在SQL中管理權限,可以使用格蘭特撤銷在筆記本或Databricks SQL查詢編輯器中,使用以下語法:

格蘭特privilege_typesecurable_object主要

地點:

例如,以下命令授予名為金融訪問以在命名的模式中創建表默認的使用父目錄命名主要

格蘭特創建表格模式主要默認的金融

有關使用SQL命令授予權限的詳細信息,請參見Unity Catalog中的特權和安全對象

屬性也可以管理特權磚起程拓殖提供者和databricks_grants

Unity Catalog中的安全對象

安全對象是在Unity Catalog metastore中定義的對象,在該對象上可以將特權授予主體。Unity Catalog中的安全對象是分層的。

Unity Catalog對象層次結構

可安全對象包括:

  • METATORE:元數據的頂層容器。每個Unity Catalog亞存儲都公開了一個三級命名空間(目錄模式表格)來組織你的資料。

  • 目錄:對象層次結構的第一層,用於組織數據資產。

  • 模式:也稱為數據庫,模式是對象層次結構的第二層,包含表和視圖。

  • 表格:對象層次結構中的最低級別,表可以是外部(存儲在您選擇的雲存儲中的外部位置)或管理表(存儲在專門為Databricks創建的雲存儲中的存儲容器中)。

  • 視圖:從模式中包含的一個或多個表創建的隻讀對象。

  • 外部位置:一個對象,它包含對存儲憑證的引用和包含在Unity Catalog元存儲中的雲存儲路徑。

  • 存儲憑證:一個封裝了長期雲證書的對象,該對象提供了對包含在Unity Catalog元存儲中的雲存儲的訪問。

  • 函數:包含在模式中的用戶定義函數。

  • 分享:打算使用增量共享共享的表的邏輯分組。共享包含在Unity Catalog亞存儲中。

  • 收件人:一個對象,用於標識一個組織或用戶組,該組織或用戶組可以使用增量共享與其共享數據。這些對象包含在一個Unity Catalog亞礦中。

  • 提供者:表示使用增量共享提供數據的組織的對象。這些對象包含在一個Unity Catalog亞礦中。

繼承模型

Unity Catalog中的安全對象是分層的,權限向下繼承。繼承特權的最高級別對象是目錄。這意味著在編目或模式上授予特權會自動將特權授予編目或模式中的所有當前和未來對象。在Unity Catalog亞存儲上授予的特權不會被繼承。

例如,下麵的命令授予選擇目錄中任何模式中的所有表和視圖上的特權主要致團隊金融

格蘭特選擇目錄主要金融

類似地,您可以在較小的訪問範圍的模式上執行授予:

格蘭特選擇模式主要默認的金融

繼承模型提供了一種為數據設置默認訪問規則的簡單方法。例如,下麵的命令使機器學習團隊能夠在一個模式中創建表並讀取彼此的表:

創建目錄毫升創建模式毫升team_sandbox格蘭特USE_CATALOG目錄毫升ml_team格蘭特USE_SCHEMA模式毫升team_sandboxml_team格蘭特創建表格模式毫升team_sandboxml_team格蘭特選擇模式毫升team_sandboxml_team

Unity目錄中的特權類型

下表總結了適用於目錄中每個可安全對象的特權類型:

可獲得的

特權

Metastore

創建目錄創建外部位置創建收件人創建分享創建提供者

目錄

所有特權創建模式使用目錄

以下特權類型適用於目錄中的安全對象。您可以在編目級別授予這些特權,以便將它們應用於編目中相關的當前和未來對象。

創建函數創建表格創建視圖執行修改選擇使用模式

模式

所有特權創建函數創建表格創建視圖使用模式

以下特權類型適用於模式中的安全對象。您可以在模式級別授予這些特權,以便將它們應用到模式中相關的當前和未來對象。

執行修改選擇

表格

所有特權選擇修改

視圖

所有特權選擇

外部位置

所有特權創建外部表格文件文件

存儲憑證

所有特權創建外部位置創建外部表格文件文件

函數

所有特權執行

分享

選擇(可以被授予收件人

收件人

沒有一個

提供者

沒有一個

在管理metastore上的特權時,不需要在SQL命令中包含metastore名稱。Unity Catalog授予或撤銷附加到工作區的metastore上的特權。例如,以下命令授予名為工程在附加到工作區的metastore中創建目錄的能力:

格蘭特創建目錄METASTORE工程

所有權限

適用對象類型:目錄外部位置存儲憑證模式函數表格視圖

用於授予或撤銷適用於可安全對象及其子對象的所有特權,而無需顯式指定它們。這將擴展到在進行權限檢查時所有可用的特權。

請注意

當應用於層次結構中的更高級別時,此特權非常強大。例如,授予目錄主TO上的所有特權分析師將給予分析團隊對目錄中的每個對象(模式、表、視圖、函數)的所有特權。

創建目錄

適用對象類型:Unity Catalog metastore

允許用戶在Unity catalog metastore中創建一個目錄。

創建外部位置

適用對象類型:Unity Catalog metastore,存儲憑證

應用於存儲憑據時,允許用戶使用存儲憑據創建外部位置。也可以將此特權授予metastore上的用戶,以允許他們創建外部位置。

創建外部表

適用對象類型:外部位置存儲憑證

允許用戶使用外部位置或存儲憑據直接在雲租戶中創建外部表。Databricks建議在外部位置授予這種特權,而不是在存儲憑據上授予這種特權(因為它的作用域是一個路徑,它允許更多地控製用戶在雲租戶中創建外部表的位置)。

創建函數

適用對象類型:模式

允許用戶在模式中創建函數。由於特權是繼承的,創建函數也可以在編目上授予,這允許用戶在編目中任何現有或未來的模式中創建函數。

用戶還必須具有使用目錄在其父目錄和使用模式在其父模式上。

創建供應商

適用對象類型:Unity Catalog metastore

允許用戶在metastore中創建增量共享提供程序對象。提供者標識使用Delta Sharing共享數據的組織或用戶組。提供者的創建由收件人的Databricks帳戶中的用戶執行。看到使用Delta Sharing安全地共享數據

創建收件人

適用對象類型:Unity Catalog metastore

允許用戶在metastore中創建增量共享接收對象。接收方標識可以使用增量共享與其共享數據的組織或用戶組。收件人創建由提供者的Databricks帳戶中的用戶執行。看到使用Delta Sharing安全地共享數據

創建模式

適用對象類型:目錄

允許用戶創建模式。用戶還必須具有使用目錄目錄上的特權。

創建共享

適用對象類型:Unity Catalog metastore

允許用戶在metastore中創建共享。共享是使用增量共享對要共享的表進行的邏輯分組

創建表

適用對象類型:模式

允許用戶在模式中創建表。由於特權是繼承的,創建表格也可以在編目上授予,這允許用戶在編目中的任何現有或未來模式中創建表。

用戶還必須具有使用目錄的父目錄和使用模式它的父模式上的特權。

創建視圖

適用對象類型:模式

允許用戶在模式中創建視圖。由於特權是繼承的,創建視圖也可以在編目上授予,這允許用戶在編目中的任何現有或未來模式中創建視圖。

用戶還必須具有使用目錄在其父目錄和使用模式在其父模式上。

執行

適用對象類型:函數

允許用戶調用用戶定義的函數(如果用戶也有)使用目錄在其父目錄和使用模式在其父模式上。

由於特權是繼承的,您可以授予用戶執行目錄或模式上的權限,該權限將自動授予用戶執行目錄或模式中所有當前和將來函數的特權。

修改

適用對象類型:表格

允許用戶向表中添加、更新和從表中刪除數據(如果用戶也有)選擇在桌子上還有使用目錄在其父目錄和使用模式在其父模式上。

由於特權是繼承的,您可以授予用戶修改目錄或模式上的權限,該權限將自動授予用戶修改目錄或模式中所有當前和將來表上的特權。

讀文件

適用對象類型:外部位置存儲憑證

允許用戶直接從雲對象存儲中讀取文件。Databricks建議在外部位置授予此特權,而不是存儲憑據(因為它的作用域是路徑,因此可以更好地控製用戶從哪裏讀取數據)。

選擇

適用對象類型:表格視圖分享

如果應用於表或視圖,則允許用戶從表或視圖中進行選擇(如果用戶也有)使用目錄在其父目錄和使用模式在其父模式上。如果應用於共享,則允許收件人從共享中進行選擇。

由於特權是繼承的,您可以授予用戶選擇目錄或模式上的特權,它自動授予用戶選擇目錄或模式中所有當前和未來表以及視圖上的特權。

使用目錄

適用對象類型:目錄

此特權不授予對目錄本身的訪問權,但用戶與目錄內的任何對象進行交互都需要此特權。例如,要從表中選擇數據,用戶需要具有選擇那張桌子上的特權使用目錄以及父目錄上的特權使用模式它的父模式上的特權。

這對於允許目錄所有者能夠限製單個模式和表所有者共享其產生的數據的程度非常有用。例如,表所有者授權選擇不允許其他用戶對表進行讀訪問,除非他們也被授予了權限使用目錄以及父目錄上的特權使用模式它的父模式上的特權。

使用模式

適用對象類型:模式

此特權不授予對模式本身的訪問權,但用戶與模式內的任何對象進行交互都需要此特權。例如,要從表中選擇數據,用戶需要具有選擇那張桌子上的特權使用模式以及使用目錄在其父目錄上。

由於特權是繼承的,您可以授予用戶使用模式目錄上的權限,這將自動授予用戶權限使用模式目錄中所有當前和未來模式的特權。

寫文件

適用對象類型:外部位置存儲憑證

允許用戶將文件直接寫入雲對象存儲。Databricks建議在外部位置而不是存儲憑據上授予此特權(由於它的作用域是路徑,因此可以更好地控製用戶可以將數據寫入的位置)。