共用方式為


ADO.NET 連接管理員

適用於:SQL Server Azure Data Factory 中的 SSIS Integration Runtime

ADO.NET 連線管理員可讓套件使用 .NET 提供者來存取資料來源。 通常,您會使用此連線管理員來存取資料來源,例如 Microsoft SQL Server。 您也可以存取透過自訂工作 (使用如 C# 這類語言以受控程式碼撰寫) 中之 OLE DB 和 XML 公開的資料來源。

當您將 ADO.NET 連線管理員新增至套件時,SQL Server Integration Services 會建立連線管理員,該連線管理員在執行階段會解析為 ADO.NET 連線。 它會設定連線管理員屬性,並將連線管理員加入套件上的 Connections 集合。

連接管理員的 ConnectionManagerType 屬性會設為 ADO.NET。 系統會限定 ConnectionManagerType 的值,以包含連接管理員使用之 .NET 提供者的名稱。

注意

Microsoft Entra ID 先前稱為 Azure Active Directory (Azure AD)。

對 ADO.NET 連線管理員進行疑難排解

SQL 2022 和以下版本不支援 Microsoft.Data.SqlClient 驅動程式。 如果您需要 msi 或 Microsoft Entra ID 型驗證方法,請改用 Oledb 連線管理員。

您可以記錄 ADO.NET 連線管理員對外部資料提供者執行的呼叫。 然後,您可以針對 ADO.NET 連線管理員的外部資料來源連線進行疑難排解。 若要記錄 ADO.NET 連線管理員對外部資料提供者執行的呼叫,請啟用套件記錄,然後在套件層級選取 [診斷] 事件。 如需詳細資訊,請參閱 封裝執行的疑難排解工具

由 ADO.NET 連線管理員讀取時,某些 SQL Server 日期資料類型的資料會產生如下表所示的結果。

SQL Server 資料類型 結果
time, datetimeoffset 除非封裝使用參數化 SQL 命令,否則封裝會失敗。 若要使用參數化 SQL 命令,請在封裝中使用「執行 SQL 工作」。 如需詳細資訊,請參閱 執行 SQL 工作執行 SQL 工作中的參數和傳回碼
datetime2 ADO.NET 連線管理員會截斷毫秒值。

注意

如需 SQL Server 資料類型以及如何將其對應到 Integration Services 資料類型的詳細資訊,請參閱資料類型 (Transact-SQL)Integration Services 資料類型

ADO.NET 連線管理員設定

您可以透過 SSIS 設計工具或以程式設計方式來設定屬性。

  • 提供設定的特定連接字串,以符合所選 .NET 提供者的需求。

  • 視提供者而定,包含要連接的資料來源名稱。

  • 為所選的提供者提供適當的安全性認證。

  • 指示是否在執行階段保留從連線管理員建立的連線。

ADO.NET 連線管理員的許多組態選項依存於連線管理員使用的 .NET 提供者。

如需您可以在 SSIS 設計工具中設定的屬性相關詳細資訊,請參閱設定 ADO.NET 連線管理員

如需以程式設計方式設定連線管理員的資訊,請參閱 ConnectionManager以程式設計方式加入連接

設定 ADO.NET 連線管理員

使用 [設定 ADO.NET 連線管理員] 對話方塊加入資料來源的連線,可使用 .NET Framework 資料提供者來存取此資料來源。 例如,其中一個提供者是 SqlClient 提供者。 連接管理員可以使用現有的連接,或者您也可以建立新的連接。

若要深入了解 ADO.NET 連線管理員,請參閱 ADO.NET 連線管理員

選項。

資料連接
從清單中選取現有的 ADO.NET 資料連接。

資料連接屬性
檢視選取之 ADO.NET 資料連接的屬性和值。

新增
使用 [連線管理員] 對話方塊來建立 ADO.NET 資料連接。

刪除
選取一個連線,然後選取 [刪除] 來刪除它。

Azure 資源驗證的受控識別

Azure Data Factory (ADF) 的 Azure-SSIS Integration Runtime (IR) 上執行 SSIS 套件時,您可以透過 ADF 的受控識別使用 Microsoft Entra 身分驗證來存取 Azure SQL Database/SQL 受控執行個體。 您的 Azure-SSIS IR 可以使用這個受控識別,存取您的資料庫,並從中複製資料或複製資料至其中。

注意

如果使用使用者指派的受控識別進行驗證,必須使用相同的身分識別來啟用 SSIS Integration Runtime。 如需詳細資訊,請參閱<啟用 Azure-SSIS Integration Runtime 的 Microsoft Entra 驗證> (部分機器翻譯)。

若要讓您的 ADF 使用其受控識別來存取 Azure SQL 資料庫,請遵循下列步驟:

  1. 在 Azure 入口網站中為您 Azure SQL Database 中的邏輯伺服器佈建 Microsoft Entra 系統管理員 (如果您尚未這麼做)。 Microsoft Entra 系統管理員可以是使用者或群組。 如果將群組指派為系統管理員,而且 ADF 的受控識別是該群組的成員,則可略過步驟 2 和 3。 系統管理員會擁有對您邏輯伺服器的完整存取權。

  2. 建立自主資料庫使用者,代表指派給 ADF 的受控識別。 透過至少具有 ALTER ANY USER 權限的 Microsoft Entra 使用者,使用 SQL Server Management Studio (SSMS) 連線至您想要從其中複製資料或是複製資料至其中的資料庫。 執行下列 T-SQL 陳述式:

    CREATE USER [your managed identity name] FROM EXTERNAL PROVIDER;
    

    如果您使用 ADF 的系統指派受控識別,則「受控識別名稱」是您的 ADF 名稱。 如果您使用 ADF 的使用者指派的受控識別,則「受控識別名稱」是受控識別的名稱。

  3. 為 ADF 的受控識別授與所需的權限,就像您一般會對 SQL 使用者所做的一樣。 如需適當的角色,請參閱資料庫層級角色 (部分機器翻譯)。 執行下列 T-SQL 陳述式。 如需更多選項,請參閱此文章 (部分機器翻譯)。

    EXEC sp_addrolemember [role name], [your managed identity name];
    

若要使用指派給 ADF 的受控識別來存取 Azure SQL 受控執行個體,請遵循下列步驟:

  1. 在 Azure 入口網站中為您的 Azure SQL 受控執行個體佈建 Microsoft Entra 系統管理員 (如果您尚未這麼做)。 Microsoft Entra 系統管理員可以是使用者或群組。 如果將群組指派為系統管理員,而且受控識別是該群組的成員,則可略過步驟 2 至 4。 系統管理員會擁有對您受控執行個體的完整存取權。

  2. 為 ADF 的受控識別建立登入。 在 SSMS 中,使用具有系統管理員權限的帳戶或 Microsoft Entra 系統管理員帳戶連線到受控執行個體。在 master 資料庫中,執行下列 T-SQL 語句:

    CREATE LOGIN [your managed identity name] FROM EXTERNAL PROVIDER;
    

    如果您使用 ADF 的系統指派受控識別,則「受控識別名稱」是您的 ADF 名稱。 如果您使用 ADF 的使用者指派的受控識別,則「受控識別名稱」是受控識別的名稱。

  3. 建立自主資料庫使用者,此使用者代表您 ADF 的受控識別。 使用 SSMS 連線到您想要複製其資料或是要複製資料至其中的資料庫,然後執行下列 T-SQL 陳述式:

    CREATE USER [your managed identity name] FROM EXTERNAL PROVIDER;
    
  4. 為 ADF 的受控識別授與所需的權限,就像您一般會對 SQL 使用者所做的一樣。 執行下列 T-SQL 陳述式。 如需更多選項,請參閱此文章 (部分機器翻譯)。

    ALTER ROLE [role name e.g., db_owner] ADD MEMBER [your managed identity name];
    

最後,您可以在 ADO.NET 連線管理員上,設定透過 ADF 的受控識別使用 Microsoft Entra 身分身分驗證。 有兩個選項可以執行此操作:

  • 在設計階段設定。 在 SSIS 設計工具中,以滑鼠右鍵按一下 [ADO.NET 連線管理員],然後選取 [屬性]。 將 ConnectUsingManagedIdentity 屬性更新為 True

    注意

    目前,當您在 SSIS Designer 或 SQL Server 上執行套件時,連線管理員屬性 ConnectUsingManagedIdentity 並不會生效 (表示無法透過 ADF 的受控識別使用 Microsoft Entra 身分驗證)。

  • 在執行階段設定。 當您透過 SSMSADF 管線中的執行 SSIS 套件活動來執行您的套件時,請尋找 ADO.NET 連線管理員,並將其 ConnectUsingManagedIdentity 屬性更新為 True

    注意

    在 Azure-SSIS IR 上,透過 ADF 的受控識別使用 Microsoft Entra 身分驗證時,將會覆寫在您的 ADO.NET 連線管理員上預先設定的所有其他身分驗證方法 (例如整合式安全性和密碼)。

若要在您現有的套件上設定透過 ADF 的受控識別使用 Microsoft Entra 身分驗證,建議的方法是使用最新的 SSIS Designer 重建您的 SSIS 專案至少一次。 重新部署您的 SSIS 專案以在 Azure-SSIS IR 上執行,使新的連線管理員屬性 ConnectUsingManagedIdentity 自動新增至您專案中的所有 ADO.NET 連線管理員。 替代方案是在執行階段直接使用屬性覆寫,將屬性路徑 \Package.Connections[{您連線管理員的名稱}].Properties[ConnectUsingManagedIdentity] 指派至 True

另請參閱