使用受控識別驗證外部數據表
外部數據表是架構實體,可參考儲存在 Azure Data Explorer 資料庫外部的數據。 外部數據表可以定義為參考 Azure 記憶體中的數據,或 SQL Server 並支援各種驗證方法。
在本文中,您將瞭解如何建立使用 受控識別進行驗證的外部數據表。
必要條件
1 - 設定受控識別以搭配外部數據表使用
受控識別有兩種:
系統指派:系統指派的身分識別會連線到您的叢集,並在移除叢集時移除。 每個叢集只允許一個系統指派的身分識別。
使用者指派:使用者指派的受控識別是獨立的 Azure 資源。 您可以將多個使用者指派的身分識別指派給您的叢集。
選取下列其中一個索引標籤,以設定慣用的受控識別類型。
請遵循將 使用者指派的身分識別新增 至叢集的步驟,並儲存 物件 (主體) 標識碼 以供稍後使用。
執行下列 .alter-merge 原則managed_identity 命令。 此命令會在叢集上設定 受控識別原則,讓受控識別 可與外部數據表搭配使用。 將取代
<objectId>
為上一個步驟 中的物件 (主體) 標識符 。.alter-merge cluster policy managed_identity ```[ { "ObjectId": "<objectId>", "AllowedUsages": "ExternalTable" } ]```
注意
若在特定資料庫上設定原則,請使用
database <DatabaseName>
而非cluster
。
2 - 授與受控識別外部資源許可權
受控識別必須具有外部資源的許可權,才能成功進行驗證。
選取相關外部資源的索引標籤,然後指派必要的許可權。
下表顯示外部資源的必要許可權。 若要從外部資源匯入或查詢數據,請授與受控識別讀取許可權。 若要將數據匯出至外部資源,請授與受控識別寫入許可權。
外部數據存放區 | 讀取權限 | 寫入許可權 | 授與許可權 |
---|---|---|---|
Azure Blob 儲存體 | 儲存體 Blob 資料讀者 | 儲存體 Blob 資料參與者 | 指派 Azure 角色 |
Data Lake Storage Gen2 | 儲存體 Blob 資料讀者 | 儲存體 Blob 資料參與者 | 指派 Azure 角色 |
Data Lake Storage Gen1 | 讀者 | 參與者 | 指派 Azure 角色 |
3 - 建立外部數據表
有兩種類型的外部數據表支援使用受控識別進行驗證:Azure 記憶體外部數據表和 SQL Server 外部數據表。
選取下列其中一個索引標籤,以設定 Azure 記憶體或 SQL Server 外部數據表。
若要建立 Azure 記憶體外部資料表,請執行下列步驟:
根據記憶體 連接字串 範本建立 連接字串。 此字串表示要存取的資源及其驗證資訊。 指定 受控識別驗證方法。
執行 .create 或 .alter 外部數據表 來建立數據表。 使用上一個步驟中的 連接字串 作為 storageConnectionString 自變數。
範例
下列命令會MyExternalTable
建立 ,該數據參考 Azure Blob 儲存體 中的 mycontainer
mystorageaccount
CSV 格式數據。 資料表有兩個資料行,一個用於整數 x
,一個用於字串 s
。 連接字串 結尾;managed_identity=system
為 ,表示使用系統指派的受控識別進行驗證,以存取數據存放區。
.create external table MyExternalTable (x:int, s:string) kind=storage dataformat=csv
(
h@'https://mystorageaccount.blob.core.windows.net/mycontainer;managed_identity=system'
)
注意
若要使用使用者指派的受控識別進行驗證,請將 取代 system
為受控識別物件標識符。
相關內容
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應