使用受控識別來執行連續匯出作業
在下列案例中,應使用 受控識別 來設定連續匯出作業:
- 當外部數據表使用模擬驗證時。
- 當查詢參考其他資料庫中的數據表時。
- 當查詢參考具有已啟用 數據列層級安全策略的數據表時。
使用受控識別設定的連續匯出作業會代表受控識別執行。
在本文中,您將瞭解如何設定系統指派或使用者指派的受控識別,並使用該身分識別建立連續匯出作業。
必要條件
設定受控識別
受控識別有兩種:
系統指派:系統指派的身分識別會連線到您的叢集,並在移除叢集時移除。 每個叢集只允許一個系統指派的身分識別。
使用者指派:使用者指派的受控識別是獨立的 Azure 資源。 您可以將多個使用者指派的身分識別指派給您的叢集。
選取下列其中一個索引標籤,以設定您慣用的受控識別類型。
請依照步驟新增 使用者指派的身分識別。
在 Azure 入口網站,選取受控識別資源的左側功能表中的 [屬性]。 複製並儲存 租使用者標識碼 和 主體標識碼 ,以供下列步驟使用。
執行下列 .alter-merge 原則 managed_identity 命令,並將
<objectId>
取代為上一個步驟中的受控識別物件標識符。 此命令會在叢集上設定 受控識別原則 ,以允許受控識別與連續導出搭配使用。.alter-merge cluster policy managed_identity ```[ { "ObjectId": "<objectId>", "AllowedUsages": "AutomatedFlows" } ]```
注意
若在特定資料庫上設定原則,請使用
database <DatabaseName>
而非cluster
。執行下列命令,將受控識別 資料庫查看器 許可權授與用於連續匯出的所有資料庫,例如包含外部數據表的資料庫。
.add database <DatabaseName> viewers ('aadapp=<objectId>;<tenantId>')
將 取代為相關的資料庫、
<objectId>
步驟 2 中的受控識別主體標識碼,並將<tenantId>
取代<DatabaseName>
為步驟 2 中的 Microsoft Entra 標識子租使用者標識碼。
設定外部數據表
外部數據表是指位於 Azure 記憶體中的數據,例如 Azure Blob 儲存體、Azure Data Lake Gen1 和 Azure Data Lake Gen2 或 SQL Server。
選取下列其中一個索引標籤,以設定 Azure 記憶體或 SQL Server 外部數據表。
根據記憶體 連接字串 範本建立 連接字串。 此字串表示要存取的資源及其驗證資訊。 針對連續匯出流程,建議 使用模擬驗證。
執行 .create 或 .alter 外部數據表 來建立數據表。 使用上一個步驟中的 連接字串 作為 storageConnectionString 自變數。
例如,下列命令會
MyExternalTable
建立 ,參考 中mycontainer
mystorageaccount
CSV 格式的數據 Azure Blob 儲存體。 資料表有兩個資料行,一個用於整數x
,另一個用於字串s
。 連接字串 結尾;impersonate
為 ,這表示使用模擬驗證來存取數據存放區。.create external table MyExternalTable (x:int, s:string) kind=storage dataformat=csv ( h@'https://mystorageaccount.blob.core.windows.net/mycontainer;impersonate' )
授與受控識別對相關外部數據存放區的寫入許可權。 受控識別需要寫入許可權,因為連續匯出作業會代表受控識別將數據匯出至數據存放區。
外部數據存放區 必要權限 授與許可權 Azure Blob 儲存體 儲存體 Blob 資料參與者 指派 Azure 角色 Data Lake Storage Gen2 儲存體 Blob 資料參與者 指派 Azure 角色 Data Lake Storage Gen1 參與者 指派 Azure 角色
建立連續匯出作業
選取下列其中一個索引標籤,以建立代表使用者指派或系統指派的受控識別執行的連續導出作業。
執行 .create-or-alter continuous-export 命令, managedIdentity
並將 屬性設定為受控識別物件標識符。
例如,下列命令會建立名為 MyExport
的連續匯出作業,以代表使用者指派的受控識別將數據匯出 MyTable
至 MyExternalTable
。 <objectId>
應該是受控識別物件標識碼。
.create-or-alter continuous-export MyExport over (MyTable) to table MyExternalTable with (managedIdentity=<objectId>, intervalBetweenRuns=5m) <| MyTable
相關內容
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應