Limit catalog 特定工作區的存取權
本文介紹工作區catalog 系結,並說明如何將 Unity Catalogcatalog 系結至 Azure Databricks 工作區,以防止 Azure Databricks 帳戶中的其他工作區存取它。
什麼是工作區catalog 系結?
如果您使用工作區來隔離用戶數據存取,則可以 limitcatalog 帳戶中特定工作區的存取權,也稱為工作區catalog 系結。 預設值是與連結至目前中繼存放區的所有工作區共用 catalog。
預設值的唯一例外是自動為所有新工作區建立的 工作區 catalog。 除非您選擇提供其他工作區的存取權,否則此工作區 catalog 只會系結至您的工作區。 如需關於在您解除綁定此 catalog時指派許可權的重要資訊,請參閱 從工作區解除綁定 catalog。
您可以從工作區允許 catalog 的讀取和寫入存取權,或者可以指定為唯讀存取。 如果您指定唯讀,則所有寫入作業都會從該工作區封鎖到該 catalog。
將 catalog 系結至特定工作區的典型使用案例包括:
- 確保使用者只能從生產工作區環境存取生產數據。
- 確保使用者只能處理專用工作區中的敏感數據。
- 讓使用者從開發人員工作區唯讀存取生產數據,以啟用開發和測試。
注意
您也可以將外部位置和記憶體 credentials 系結至特定工作區,將外部位置中的數據限製為這些工作區中具特殊許可權的使用者。 請參閱 (選擇性) 將外部位置指派給特定工作區 ,以及 [選擇性] 將記憶體認證指派給特定工作區。
工作區-catalog 系結範例
以生產與開發隔離為例。 如果您指定生產數據 catalogs 只能從生產工作區存取,這會取代任何發放給使用者的個別權限。
在此圖表中, prod_catalog
系結至兩個生產工作區。 假設使用者已獲授與 prod_catalog
(稱為 my_table
)中的 table 存取權(使用 GRANT SELECT ON my_table TO <user>
)。 如果使用者嘗試在開發人員工作區中存取 my_table
,他們會收到錯誤訊息。 使用者只能從 Prod ETL 和 Prod Analytics 工作區存取 my_table
。
工作區-catalog 綁定會在平臺的所有區域中被遵循。 例如,如果您查詢資訊 schema,您只會看到在工作區 where 中可存取的 catalogs。 數據譜系和搜尋UI同樣只會顯示指派給工作區的 catalogs(無論是使用系結還是預設)。
將 catalog 系結至一或多個工作區
若要將 catalog 指派給特定工作區,您可以使用 Catalog Explorer 或 Databricks CLI。
所需的許可權:中繼存放區系統管理員、catalog 擁有者,或 MANAGE
和 catalog上的 USE CATALOG
。
注意
無論 catalog 是否已指派至目前的工作區,中繼存放區的管理員仍然可以使用 Catalog Explorer 查看中繼存放區中的所有 catalogs,而 catalog 擁有者則可以看到其在中繼存放區中擁有的所有 catalogs。 未指派給工作區的 Catalogs 會呈現灰色,子物件不可見也不可查詢。
Catalog 探險家
登入連結至中繼存放區的工作區。
點選
Catalog。
在 [Catalog] 窗格中,點擊左側的 [catalog 名稱]。
主要 Catalog 總管窗格預設為 Catalogslist。 您也可以在那裡selectcatalog。
在 [ 工作區] 索引 標籤上,清除 [ 所有工作區都有存取權 ] 複選框。
如果您的 catalog 已綁定至一個或多個工作區,此複選框已被取消勾選。
按兩下 [ 指派給工作區 ],然後輸入或尋找您想要指派的工作區。
(選擇性)Limit 工作區存取設定為只讀。
在 [管理存取層級] 功能表上,select將存取權變更為唯讀。
您可以隨時反轉此選取,方法是編輯 catalog 並選取 將讀取存取權更改為 & 寫入。
若要 revoke 存取權,請移至 [工作區] 索引標籤,select 工作區,然後按一下 [Revoke]。
CLI
有兩個 Databricks CLI 命令群組,以及將 catalog 指派給工作區所需的兩個步驟。
在下列範例中,將 取代 <profile-name>
為您的 Azure Databricks 驗證組態配置檔名稱。 它應該包含個人存取令牌的值,並且要包括您在工作區 where 中產生該個人存取令牌的工作區實例名稱和工作區標識碼。 請參閱 Azure Databricks 個人存取權杖驗證。
使用
catalogs
指令群組中的update
指令,將 catalog的isolation mode
set 至ISOLATED
:databricks catalogs update <my-catalog> \ --isolation-mode ISOLATED \ --profile <profile-name>
預設值
isolation-mode
為OPEN
附加至中繼存放區的所有工作區。使用
workspace-bindings
命令群組的update-bindings
命令,將工作區指派給 catalog:databricks workspace-bindings update-bindings catalog <my-catalog> \ --json '{ "add": [{"workspace_id": <workspace-id>, "binding_type": <binding-type>}...], "remove": [{"workspace_id": <workspace-id>, "binding_type": "<binding-type>}...] }' --profile <profile-name>
使用
"add"
和"remove"
屬性來新增或綁定 remove 工作區系結。<binding-type>
可以是“BINDING_TYPE_READ_WRITE”
(預設值) 或“BINDING_TYPE_READ_ONLY”
。
若要對 catalog的所有工作區指派進行 list,請使用 workspace-bindings
命令群組中的 get-bindings
命令:
databricks workspace-bindings get-bindings catalog <my-catalog> \
--profile <profile-name>
從工作區解除 catalog 系結
使用 Catalog Explorer 或 workspace-bindings
CLI 命令群組撤銷工作區 catalog 存取權的指示包含在 將 catalog 系結至一或多個工作區。
重要
如果您的工作區已自動啟用 Unity Catalog,並且您有一個 工作區 catalog,那麼工作區系統管理員擁有該工作區的 catalog,並且僅在該工作區中擁有所有 catalog的許可權。 如果您解除系結該 catalog 或系結至其他 catalogs,您必須手動將工作區系統管理員群組成員的任何必要許可權手動 grant 給工作區系統管理員群組的成員,或使用帳戶層級群組,因為工作區管理員群組是工作區本機群組。 如需帳戶群組與工作區本地組的詳細資訊,請參閱 Azure Databricks中的群組類型