使用受控識別驗證外部數據表

外部數據表是架構實體,可參考儲存在 Azure Data Explorer 資料庫外部的數據。 外部數據表可以定義為參考 Azure 記憶體中的數據,或 SQL Server 並支援各種驗證方法。

在本文中,您將瞭解如何建立使用 受控識別進行驗證的外部數據表。

必要條件

1 - 設定受控識別以搭配外部數據表使用

受控識別有兩種:

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

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

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

  1. 請遵循將 使用者指派的身分識別新增 至叢集的步驟,並儲存 物件 (主體) 標識碼 以供稍後使用。

  2. 執行下列 .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 記憶體外部資料表,請執行下列步驟:

  1. 根據記憶體 連接字串 範本建立 連接字串。 此字串表示要存取的資源及其驗證資訊。 指定 受控識別驗證方法

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

範例

下列命令會MyExternalTable建立 ,該數據參考 Azure Blob 儲存體 中的 mycontainermystorageaccount 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 為受控識別物件標識符。