OLEDB 连接管理器

适用于:SQL Server Azure 数据工厂中的 SSIS Integration Runtime

OLEDB 连接管理器的作用是使用 OLEDB 提供程序将包连接到数据源。 例如,连接到 SQL Server 的 OLEDB 连接管理器可以使用适用于 SQL Server 的 Microsoft OLEDB 提供程序。

注意

SQL Server Native Client 11.0 OLEDB 提供程序不支持用于多子网故障转移群集的新连接字符串关键字 (MultiSubnetFailover=True)。 有关详细信息,请参阅 SQL Server 发行说明

注意

如果数据源是 Microsoft Office Excel 2007 或 Microsoft Office Access 2007,则数据源需要不同于早期版本 Excel 或 Access 的数据访问接口。 有关详细信息,请参阅 连接到 Excel 工作簿连接到 Access 数据库

有若干 SQL Server Integration Services 任务和数据流组件使用 OLEDB 连接管理器。 例如,OLEDB 源和 OLEDB 目标使用此连接管理器来提取和加载数据。 执行 SQL 任务可以使用此连接管理器来连接到 SQL Server 数据库以运行查询。

OLEDB 连接管理器还用于在以使用 C++ 等语言的非托管代码编写的自定义任务中访问 OLEDB 数据源。

将 OLEDB 连接管理器添加到包时,Integration Services 会创建在运行时决定 OLEDB 连接的连接管理器,设置该连接管理器的属性,并将该连接管理器添加到包上的“连接”集合。

该连接管理器的 ConnectionManagerType 属性设置为 OLEDB

按下列方式配置 OLEDB 连接管理器:

  • 提供配置为满足选定访问接口要求的特定连接字符串。

  • 包括要连接到的数据源的名称(取决于访问接口)。

  • 为选定的访问接口提供相应的安全凭据。

  • 指示是否在运行时保留从连接管理器中创建的连接。

记录调用和对连接进行故障排除

你可以记录 OLEDB 连接管理器对外部数据提供程序所做的调用。 然后可以对 OLEDB 连接管理器与外部数据源的连接进行故障排除。 若要记录 OLEDB 连接管理器对外部数据提供程序所做的调用,请在包级别启用包日志记录并选择“诊断”事件。 有关详细信息,请参阅 包执行的疑难解答工具

配置 OLEDB 连接管理器

可以通过 SSIS 设计器或以编程方式来设置属性。 有关可以在 SSIS 设计器中设置的属性的详细信息,请参阅 配置 OLEDB 连接管理器。 有关以编程方式配置连接管理器的信息,请参阅开发人员指南中针对 T:Microsoft.SqlServer.Dts.Runtime.ConnectionManager 类的文档。

配置 OLEDB 连接管理器

可以使用“配置 OLEDB 连接管理器”对话框添加与数据源的连接。 此连接可以是新连接,也可以是现有连接的副本。

注意

如果数据源是 Microsoft Office Excel 2007,则数据源需要一个不同于早期版本 Excel 的连接管理器。 有关详细信息,请参阅 连接到 Excel 工作簿

如果数据源是 Microsoft Office Access 2007,则数据源需要一个不同于早期版本 Access 的 OLEDB 提供程序。 有关详细信息,请参阅 连接到 Access 数据库

若要了解有关 OLEDB 连接管理器的详细信息,请参阅 OLEDB 连接管理器

选项

数据连接
从列表中选择现有的 OLEDB 数据连接。

数据连接属性
查看所选 OLEDB 数据连接的属性和值。

新建
使用“连接管理器”对话框创建 OLEDB 数据连接。

删除
选择一个数据连接,然后通过选择“删除” 来删除该连接。

Azure 资源身份验证的托管标识

Azure 数据工厂 (ADF) 中的 Azure-SSIS Integration Runtime (IR) 上运行 SSIS 包时,可以将 Azure Active Directory (AAD) 身份验证与为 ADF 指定的系统/用户分配的托管标识一起用于访问 Azure SQL Database 服务器/托管实例。 Azure-SSIS IR 可以使用此托管标识访问数据并从/向数据库复制数据。

注意

使用 AAD 身份验证访问 Azure SQL Database 服务器/托管实例时,可能会遇到与包执行失败或意外行为变更有关的问题。 有关详细信息,请参阅 AAD 功能和限制

若要将 AAD 身份验证与为 ADF 指定的系统/用户分配的托管标识一起用于访问 Azure SQL Database 服务器,请执行以下步骤:

  1. 在 Azure 门户中为 Azure SQL Database 服务器预配 AAD 管理员(如果尚未这样做)。 AAD 管理员可以是 AAD 用户或组。 如果为具有为 ADF 指定的系统/用户分配的托管标识的组授予管理员角色,请跳过步骤 2-3。 管理员将拥有对 Azure SQL Database 服务器的完全访问权限。

  2. 创建一个包含的数据库用户,用于表示为 ADF 指定的系统/用户分配的托管标识。 使用 SQL Server Management Studio (SSMS) 连接到要从/向其复制数据的数据库,其 AAD 用户至少具有 ALTER ANY USER 权限。 运行以下 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];
    

若要将 AAD 身份验证与为 ADF 指定的系统/用户分配的托管标识一起用于访问 Azure SQL 托管实例,请执行以下步骤:

  1. 在 Azure 门户中为 Azure SQL 托管实例预配 AAD 管理员(如果尚未这样做)。 AAD 管理员可以是 AAD 用户或组。 如果为具有为 ADF 指定的系统/用户分配的托管标识的组授予管理员角色,请跳过步骤 2-4。 管理员将拥有对 Azure SQL 托管实例的完全访问权限。

  2. 创建一个登录名并将其分配给为 ADF 指定的系统/用户分配的托管标识。 在 SSMS 上,使用 SQL Server 帐户(即 sysadmin)连接到 Azure SQL 托管实例。 在 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];
    

然后,可以在 OLEDB 连接管理器上配置 OLEDB 提供程序。 完成此操作的方法有两种:

  • 在设计时进行配置。 在 SSIS 设计器中,双击 OLEDB 连接管理器以打开“连接管理器”窗口。 在“提供程序”下拉列表中,选择适用于 SQL Server 的 Microsoft OLEDB 驱动程序

    注意

    下拉列表中的其他提供程序可能不支持使用为 ADF 指定的系统/用户分配的托管标识进行 AAD 身份验证。

  • 在运行时进行配置。 通过 SSMS 运行包或在 ADF 管道中执行 SSIS 包活动时,请查找 OLEDB 连接管理器的连接管理器属性 ConnectionString。 将连接属性 Provider 更新为 MSOLEDBSQL(即适用于 SQL Server 的 Microsoft OLEDB 驱动程序)。

    Data Source=serverName;Initial Catalog=databaseName;Provider=MSOLEDBSQL;...
    

最后,可以在 OLEDB 连接管理器上配置使用为 ADF 指定的系统/用户分配的托管标识进行 AAD 身份验证。 完成此操作的方法有两种:

  • 在设计时进行配置。 在 SSIS 设计器中,右键单击 OLEDB 连接管理器,然后选择“属性”。 将属性 ConnectUsingManagedIdentity 更新为 True

    注意

    目前,在 SSIS 设计器或 SQL Server 上运行包时,连接管理器属性 ConnectUsingManagedIdentity 不起作用(指示使用为 ADF 指定的系统/用户分配的托管标识进行 AAD 身份验证不起作用)。

  • 在运行时进行配置。 通过 SSMS 运行包或在 ADF 管道中执行 SSIS 包活动时,请查找 OLEDB 连接管理器并将其属性 ConnectUsingManagedIdentity 更新为 True

    注意

    在 Azure-SSIS IR 上,在将 AAD 身份验证与为 ADF 指定的系统/用户分配的托管标识一起使用时,将覆盖在 OLEDB 连接管理器上预先配置的所有其他身份验证方法(例如集成安全性和密码)。

若要在现有包上配置使用为 ADF 指定的系统/用户分配的托管标识进行 AAD 身份验证,首选方法是使用最新的 SSIS 设计器至少重新生成一次 SSIS 项目。 重新部署 SSIS 项目以在 Azure-SSIS IR 上运行,这样新的连接管理器属性 ConnectUsingManagedIdentity 才会自动添加到项目中的所有 OLEDB 连接管理器。 另一种方法是,直接结合使用属性重写和在运行时分配给 True 的属性路径 \Package.Connections[{连接管理器名称}].Properties[ConnectUsingManagedIdentity]。

另请参阅