使用受控識別來執行連續匯出作業

連續匯出作業會使用定期執行的查詢,將數據匯出至外部數據表

在下列案例中,應使用 受控識別 來設定連續匯出作業:

  • 當外部數據表使用模擬驗證時。
  • 當查詢參考其他資料庫中的數據表時。
  • 當查詢參考具有已啟用 數據列層級安全策略的數據表時。

使用受控識別設定的連續匯出作業會代表受控識別執行。

在本文中,您將瞭解如何設定系統指派或使用者指派的受控識別,並使用該身分識別建立連續匯出作業。

必要條件

設定受控識別

受控識別有兩種:

  • 系統指派:系統指派的身分識別會連線到您的叢集,並在移除叢集時移除。 每個叢集只允許一個系統指派的身分識別。

  • 使用者指派:使用者指派的受控識別是獨立的 Azure 資源。 您可以將多個使用者指派的身分識別指派給您的叢集。

選取下列其中一個索引標籤,以設定您慣用的受控識別類型。

  1. 請依照步驟新增 使用者指派的身分識別

  2. 在 Azure 入口網站,選取受控識別資源的左側功能表中的 [屬性]。 複製並儲存 租使用者標識碼主體標識碼 ,以供下列步驟使用。

    具有受控識別標識碼 Azure 入口網站 區域的螢幕快照。

  3. 執行下列 .alter-merge 原則 managed_identity 命令,並將 <objectId> 取代為上一個步驟中的受控識別物件標識符。 此命令會在叢集上設定 受控識別原則 ,以允許受控識別與連續導出搭配使用。

    .alter-merge cluster policy managed_identity ```[
        {
          "ObjectId": "<objectId>",
          "AllowedUsages": "AutomatedFlows"
        }
    ]```
    

    注意

    若在特定資料庫上設定原則,請使用 database <DatabaseName> 而非 cluster

  4. 執行下列命令,將受控識別 資料庫查看器 許可權授與用於連續匯出的所有資料庫,例如包含外部數據表的資料庫。

    .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 外部數據表。

  1. 根據記憶體 連接字串 範本建立 連接字串。 此字串表示要存取的資源及其驗證資訊。 針對連續匯出流程,建議 使用模擬驗證

  2. 執行 .create 或 .alter 外部數據表 來建立數據表。 使用上一個步驟中的 連接字串 作為 storageConnectionString 自變數。

    例如,下列命令會MyExternalTable建立 ,參考 中 mycontainermystorageaccount 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' 
    )
    
  3. 授與受控識別對相關外部數據存放區的寫入許可權。 受控識別需要寫入許可權,因為連續匯出作業會代表受控識別將數據匯出至數據存放區。

    外部數據存放區 必要權限 授與許可權
    Azure Blob 儲存體 儲存體 Blob 資料參與者 指派 Azure 角色
    Data Lake Storage Gen2 儲存體 Blob 資料參與者 指派 Azure 角色
    Data Lake Storage Gen1 參與者 指派 Azure 角色

建立連續匯出作業

選取下列其中一個索引標籤,以建立代表使用者指派或系統指派的受控識別執行的連續導出作業。

執行 .create-or-alter continuous-export 命令, managedIdentity 並將 屬性設定為受控識別物件標識符。

例如,下列命令會建立名為 MyExport 的連續匯出作業,以代表使用者指派的受控識別將數據匯出 MyTableMyExternalTable<objectId> 應該是受控識別物件標識碼。

.create-or-alter continuous-export MyExport over (MyTable) to table MyExternalTable with (managedIdentity=<objectId>, intervalBetweenRuns=5m) <| MyTable