共用方式為


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

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

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

必要條件

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

受控識別有兩種:

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

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

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

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

  2. 執行 .alter-merge 原則 managed_identity 命令。 此命令會在叢集上設定 受控識別原則 ,以允許搭配外部數據表使用受控識別。 將 取代 <objectId>Object (principal) 識別碼

    .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 儲存體 中的 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 為受控識別物件標識符。