管理 Unity Catalog 物件擁有權
Unity Catalog 中的每個 安全性實體物件 都有擁有者。 擁有者可以是任何主體:使用者、服務主體或帳戶群組。 建立物件的主體會成為其初始擁有者。 對象的擁有者對該對象擁有所有許可權,例如在 table上的 SELECT
和 MODIFY
,除此之外還有將這些許可權 grant 給其他主體的權限。 物件擁有者能夠卸除物件。
擁有者權限
物件的擁有者會被自動授與該物件的所有權限。 此外,對象擁有者可以在物件本身及其所有子物件上擁有 grant 許可權。 這表示 schema 的擁有者不會在 schema中自動擁有 tables 的所有許可權,但他們可以在 schema中 tables 上 grant 自己的許可權。
注意
擁有者在 對象上擁有所有許可權的規則有一個例外:為了避免意外數據外流,schema 擁有者默認沒有 EXTERNAL USE SCHEMA
許可權。 請參閱 啟用 Unity 的外部資料存取 Catalog。
中繼存放區和 catalog 擁有權
中繼存放區系統管理員是中繼存放區的擁有者。 中繼存放區系統管理員角色是選擇性的。 中繼存放區系統管理員可以藉由轉移中繼存放區系統管理員角色來重新指派中繼存放區的所有權,請參閱指派中繼存放區管理員。
如果您的工作區已針對 Unity 自動啟用 Catalog,則預設會將工作區附加至中繼存放區,且會在中繼存放區中為您的工作區建立工作區 catalog。 工作區管理員是預設擁有者,而且可以重新指派工作區的擁有權 catalog。 在這些工作區中,預設沒有指派中繼存放區管理員,但帳戶管理員可以視需要 grant 中繼存放區管理員角色。 請參閱中繼存放區系統管理員。
如需 Unity
擁有權與 MANAGE
特權
MANAGE
(公開預覽) 是類似於對象擁有權的許可權。 它授與用戶編輯、卸除和管理物件許可權的能力。 不過,具有物件上 MANAGE
許可權的使用者不會自動授與該物件上的所有許可權。 如同其他許可權,使用者需對物件的父項 catalog 擁有USE CATALOG
,並對物件的父項 schema擁有USE SCHEMA
。 例如,若要在 table上獲得 grant 許可權,用戶必須擁有該 table 的 MANAGE
許可權,並在其父 catalog上擁有 USE CATALOG
許可權,以及在其父 schema上擁有 USE SCHEMA
許可權。
對象的擁有者只能是單一主體,包括群組,而 MANAGE
可以授與多個主體。
為了避免意外提升許可權,ALL PRIVILEGES
不包含 MANAGE
許可權
檢視物件擁有者
您可以使用 Catalog Explorer 或 SQL 語句來檢視對象的擁有者。
需要權限:具有 BROWSE
物件或物件父系權限的任何使用者都可以檢視物件擁有者。
Catalog 探索者
在 Azure Databricks 工作區中,按兩下 Catalog。
Select 物件,例如 catalog、schema、table、檢視、磁碟區、外部位置或存儲憑證。
物件的瀏覽方式取決於物件。 Catalogs、架構和架構的內容(例如 tables 和 volumes)可在左 Catalog 窗格中選取。 您可以單擊 [Catalog] 窗格上方 shares。
對於大部分的物件,擁有者會顯示在物件詳細資料頁面上的 [概觀] 索引標籤上。 對於某些物件,例如外部位置,它會顯示在物件詳細資料頁面頂端。
SQL
在筆記本或 SQL 查詢編輯器中,執行下列 SQL 命令。 將 values佔位元替換:
-
<securable-type>
:安全性實體的類型,例如CATALOG
或TABLE
。 -
<catalog>
:如果您要檢視 schema 或 schema的內容,則為父 catalog。 -
<schema>
:如果您要檢視 schema的內容,例如 table 或檢視,則為父 schema。 -
<securable-name>
:安全性實體物件的名稱。
DESCRIBE <securable-type> EXTENDED <catalog>.<schema>.<securable-name>;
移轉擁有權
您可以使用 Catalog Explorer 或 SQL 語句來檢視對象的擁有者。
需要的許可權:如果您是當前擁有者、中繼存放區管理員、容器的擁有者(如schema的 catalog、table的 schema),或是具有對象 MANAGE
許可權的使用者,您就可以轉移對象所有權。 Delta Sharing 共用物件是例外狀況:具有 USE SHARE
和 SET SHARE PERMISSION
權限的主體也可以轉移分享所有權。
注意
若要防止許可權提升,只有中繼存放區管理員可以將檢視、函式或模型的擁有權轉移給帳戶中的任何使用者、服務主體或群組。 具有 MANAGE
許可權的目前擁有者和使用者,僅限於將擁有權轉移至其使用者名稱或屬於其成員的群組。
Catalog 探險者
在 Azure Databricks 工作區中,按兩下 Catalog。
Select 物件,例如 catalog、schema、table、檢視、外部位置或存儲憑證。
物件的瀏覽方式取決於物件。 Catalogs、架構和架構的內容(例如 tables 和 volumes)可在左 Catalog 窗格中選取。 您可以在
窗格上方單擊 齒輪圖示,然後從功能表中選擇物件類別,以尋找其他物件,例如外部位置 或 Delta 認購 。 對於大部分的物件,擁有者會顯示在物件詳細資料頁面上的 [概觀] 索引標籤上。 對於某些物件,例如外部位置,它會顯示在物件詳細資料頁面頂端。
按下 [擁有者] 旁邊的 編輯圖示。
搜尋並 select 群組、用戶或服務主體。
按一下 [檔案] 。
SQL
在筆記本或 SQL 查詢編輯器中,執行下列 SQL 命令。 取代佔位符 values:
-
<securable-type>
:安全性實體物件的類型,如CATALOG
或TABLE
。 在此命令中METASTORE
不支援作為安全性實體物件。 -
<securable-name>
:安全性實體的名稱。 如果您要修改 schema 或 schema的內容,除非您已經指定父 catalog 和/或 schema,否則必須使用完整的三層命名空間 (catalog.schema.object
)。 -
<principal>
是使用者、服務主體 (由其 applicationId 值表示) 或群組。 您必須以反引號 () 括住包含` `
的使用者、服務主體和群組名稱。 請參閱主體。
ALTER <securable-type> <securable-name> OWNER TO <principal>;
例如,若要將 orders
table 的擁有權轉移至 accounting
群組:
ALTER TABLE mycatalog.myschema.orders OWNER TO `accounting`;