本文說明如何建立無法存取已啟用 Unity 目錄之 Databricks 工作區的 Delta 共用收件者,並使用持有人令牌授與這些收件者安全共用數據的存取權。 此驗證流程以及 OIDC 令牌同盟驗證流程稱為 「開啟共用」。
以下是其運作方式:
身為數據提供者,您會在 Unity 目錄中繼存放區中建立收件者物件。
當您建立收件者物件時,您會選取持有人令牌方法,Azure Databricks 會產生令牌、包含令牌的認證檔案,以及可供您與收件者共用的啟用連結。
收件者物件具有的
TOKEN驗證類型。 您可以視需要重新整理和撤銷令牌。收件者會存取啟用鏈接、下載認證檔案,並使用認證檔案來驗證和取得您提供給他們存取之共用中所含數據表的讀取許可權。
OIDC 同盟流程是本文中所述持有人令牌流程的替代方案。 其安全性與便利性優於持有人令牌流程。 如需詳細資訊,請參閱 使用 Open ID Connect (OIDC) 同盟來啟用對 Delta Sharing 共用 (open sharing) 的驗證。
這很重要
所有在 2025 年 12 月 8 日前發行、2026 年 12 月 8 日之後到期或無到期日的開放共享接收代幣,均將於 2026 年 12 月 8 日自動到期。 如果您目前使用擁有長或無限壽命的接收代幣,請檢視您的整合狀況,並在必要時續訂代幣,以避免在此日期後造成變更的破壞。
建立收件者
若要建立公開共用的收件者,您可以使用目錄瀏覽器、Databricks Unity Catalog CLI,或在 Azure Databricks 筆記本或 Databricks SQL 查詢編輯器中使用 SQL 命令。
所需許可權:中繼存放區管理員或在您要共用資料的 Unity 目錄中繼存放區中擁有 CREATE RECIPIENT 許可權的使用者。
目錄檢視器
在您的 Azure Databricks 工作區中,按兩下
目錄。
在 [ 目錄 ] 窗格頂端,按兩下
,然後選取 [ 差異共用]。
或者,從 快速存取 頁面,按一下 Delta Sharing > 按鈕。
在 由我共用 標籤上,按一下 新增收件者。
輸入 收件者名稱
針對 收件者類型,選取 開啟。
選擇 Token。
(選擇性)設定 令牌存留期 的過期時間(以秒、分鐘、小時或天為單位,自收件者建立時間起)。 保留 設定到期 選取以設定到期時間。 代幣在創建後最多有效一年。
如果您選取 [ 設定到期 日],並將字段保留空白,令牌存留期預設為中繼存放區設定中設定的收件者令牌存留期值。 請參閱 修改收件者令牌存留期。 如需變更令牌存留期和輪替令牌的相關信息,請參閱 管理收件者令牌。
(選擇性)輸入批註。
點擊 建立。
複製啟用連結。
或者,您可以稍後取得啟用連結。 請參閱 取得啟用連結。
(選擇性)建立自定義 收件者屬性。
在收件者 概觀 索引標籤上,點擊
位於 [收件者屬性] 旁的 編輯圖示。 然後新增屬性名稱 (鍵) 和 值。 如需詳細資訊,請參閱 管理收件者屬性。
SQL
在筆記本或 Databricks SQL 查詢編輯器中執行下列命令:
CREATE RECIPIENT [IF NOT EXISTS] <recipient-name>
[COMMENT "<comment>"];
您也可以為收件者新增自訂屬性。 如需詳細資訊,請參閱 管理收件者屬性。
CLI
使用 Databricks CLI 執行下列命令。
databricks recipients create <recipient-name>
您也可以為收件者新增自訂屬性。 如需詳細資訊,請參閱 管理收件者屬性。
輸出包含您與收件者共用的 activation_url 資訊。
收件者是由 authentication_type 使用 TOKEN 建立的。
備註
當您建立收件者時,您可以選擇將收件者存取限制為一組受限制的IP位址。 您也可以將IP存取清單新增至現有的收件者。 請參閱使用 IP 存取清單限制 Delta 共用接收者的存取權 (開放共用)。
取得啟用連結
若要取得新收件者的啟用連結,您可以使用目錄總管、Databricks Unity 目錄 CLI,或 DESCRIBE RECIPIENT Azure Databricks 筆記本或 Databricks SQL 查詢編輯器中的 SQL 命令。
如果收件者已經下載認證檔案,則不會傳回或顯示啟用連結。
需要的許可權:Metastore 管理員、具有 USE RECIPIENT 許可權的使用者或收件者對象的擁有者。
目錄檢視器
在您的 Azure Databricks 工作區中,按兩下
目錄。
在 [ 目錄 ] 窗格頂端,按兩下
,然後選取 [ 差異共用]。
或者,從 快速存取 頁面,按一下 Delta Sharing > 按鈕。
在 [ 由我 共用] 索引標籤上,按兩下 [ 收件者],然後選取收件者。
在收件者詳細數據頁面上,複製 [ 啟用] 連結。
SQL
在筆記本或 Databricks SQL 查詢編輯器中執行下列命令。
DESCRIBE RECIPIENT <recipient-name>;
輸出包含 activation_link。
CLI
使用 Databricks CLI 執行下列命令。
databricks recipients get <recipient-name>
輸出包含 activation_url。
賦予收件者對共享資源的存取權
建立收件者並 建立共享之後,您可以將這些共用的存取權授與收件者。
若要授與收件者的共用存取權,您可以使用目錄總管、Databricks Unity 目錄 CLI,或 GRANT ON SHARE Azure Databricks 筆記本或 Databricks SQL 查詢編輯器中的 SQL 命令。
所需權限:下列其中一個:
- Metastore 管理員。
- 共用以及收件者物件的委派權限或所有權 ((
USE SHARE+SET SHARE PERMISSION) 或共用擁有者) 和 (USE RECIPIENT或收件者擁有者)。
如需指示,請參閱管理對 Delta Sharing 數據共用的存取權(適用於提供者)。
傳送收件者其連線資訊
您必須讓收件者知道如何存取您與其共享的數據。 使用安全通道來共用 啟用連結 ,以及 使用該連結的指示連結。
您只能下載認證檔案一次。 收件者應將下載的認證視為秘密,且不得在組織外部共用。 如果您擔心認證可能不安全地被處理,您可以隨時 更新名義人的憑證。 如需管理認證以確保安全收件者存取的詳細資訊,請參閱 令牌的安全性考慮。
管理收件者令牌
如果您使用開啟的共用持有人令牌流程與收件者共享數據,您可能需要輪替該收件者的令牌。 輪替令牌包含將現有令牌設定為過期,並以新的令牌和啟用URL取代令牌。
在下列情況下,您應該輪替收件者的令牌,並產生新的激活網址:
- 當現有的收件者令牌即將到期時。
- 如果收件者遺失其啟用 URL 或其被入侵,應該採取適當的措施。
- 如果使用者在下載憑證後,該憑證發生損毀、遺失或遭到入侵。
- 當您修改中繼存放區的收件者令牌存留期時。 請參閱 修改收件者令牌存留期。
令牌的安全性考慮
在任意時間點,收件者最多擁有兩個令牌:活動令牌和旋轉令牌。 輪替令牌是已設定為到期且由作用中令牌取代的令牌。 在輪替令牌過期之前,嘗試再次輪替令牌會導致錯誤。
當您旋轉收件者的令牌時,您可以選擇性地設定 --existing-token-expire-in-seconds 為現有收件者令牌在到期之前的秒數,也就是要被旋轉的令牌。 如果您將值設定為 0,則現有的收件者令牌會立即到期。
Databricks 建議您設定 --existing-token-expire-in-seconds 為相對較短的期間,讓收件者組織有時間存取新的啟用 URL,同時將收件者有兩個使用中令牌的時間量降到最低。 如果您懷疑現有的收件者令牌遭到入侵,Databricks 建議您強制它立即到期。
如果收件者的現有啟用 URL 從未被存取,更新現有的令牌會使該啟用 URL 失效,並將其替換為新的 URL。
如果所有收件者令牌都已過期,輪替令牌會以新的 URL 取代現有的啟用 URL。 Databricks 建議您立即輪替或卸除令牌已過期的收件者。
如果收件者啟用 URL 不小心傳送到錯誤的人員,或透過不安全的通道傳送,Databricks 建議您:
- 撤銷收件者的共用存取。
- 旋轉收件者,並將設定
--existing-token-expire-in-seconds為0。 - 透過安全通道與預定收件者共用新的啟用URL。
- 存取啟用 URL 之後,請再次將共用的存取權授與收件者。
在極端情況下,您可以 卸除 並重新建立收件者,而不是輪替收件者的令牌。
輪換收件人的代幣
若要輪替收件者的令牌,您可以使用 Catalog Explorer 或 Databricks Unity 目錄 CLI。
所需權限:收件者物件擁有者。
目錄檢視器
在您的 Azure Databricks 工作區中,按兩下
目錄。
在左窗格中,展開[Delta 分享]功能表,然後選取[我共用的]。
在 [ 目錄 ] 窗格頂端,按兩下
,然後選取 [ 差異共用]。
或者,從 快速存取 頁面,按一下 Delta Sharing > 按鈕。
在 [ 由我 共用] 索引標籤上,按兩下 [ 收件者],然後選取收件者。
在 [詳細資料] 索引標籤下的 [令牌到期],按一下 [輪替]。
在 輪替憑證 對話框中,將憑證設為立即到期或設定為一段時間後到期。 如需何時到期現有令牌的建議,請參閱 令牌的安全性考慮。
按兩下 [ 旋轉]。
在 [ 詳細數據] 索引標籤上,複製新的 [啟用] 連結 ,並透過安全通道與收件者共用。 請參閱 取得啟用連結。
CLI
使用 Databricks CLI 執行下列命令。 替換占位符值:
-
<recipient-name>:收件者的名稱。 -
<expiration-seconds>:現有收件者令牌到期之前的秒數。 在此期間,現有的令牌將會繼續運作。 值0表示現有的令牌會立即到期。 如需何時到期現有令牌的建議,請參閱 令牌的安全性考慮。
databricks recipients rotate-token \ <recipient-name> \ <expiration-seconds>-
取得收件者的新啟用連結,並透過安全通道與收件者共用。 請參閱 取得啟用連結。
修改收件者令牌存留期
如果您需要修改 Unity 目錄中繼存放區的預設收件者令牌存留期,您可以使用目錄總管或 Databricks Unity 目錄 CLI。
備註
當您變更中繼存放區的預設收件者令牌存留期時,現有收件者的收件者令牌存留期不會自動更新。 若要將新的令牌存留期套用至指定的收件者,您必須輪替其令牌。 請參閱 如何管理收件者令牌。
所需權限:帳戶管理員。
目錄檢視器
- 登入 帳戶主控台。
- 在提要欄位中,按兩下
目錄。
- 點擊中繼存放區名稱。
- 在 Delta 分享收件者憑證的有效期限 下,點擊 編輯。
- 啟用設定到期。
- 輸入秒數、分鐘、小時或天數,然後選取量值單位。 代幣在創建後最多有效一年。
- 點選 [儲存]。
CLI
使用 Databricks CLI 執行下列命令。 將 12a345b6-7890-1cd2-3456-e789f0a12b34 替換為中繼存放區的 UUID,並將 86400 替換為收件者令牌到期之前的秒數。 代幣在創建後最多有效一年。
databricks metastores update \
12a345b6-7890-1cd2-3456-e789f0a12b34 \
--delta-sharing-recipient-token-lifetime-in-seconds 86400