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 服务器,请执行以下步骤:
在 Azure 门户中为 Azure SQL Database 服务器预配 AAD 管理员(如果尚未这样做)。 AAD 管理员可以是 AAD 用户或组。 如果为具有为 ADF 指定的系统/用户分配的托管标识的组授予管理员角色,请跳过步骤 2-3。 管理员将拥有对 Azure SQL Database 服务器的完全访问权限。
创建一个包含的数据库用户,用于表示为 ADF 指定的系统/用户分配的托管标识。 使用 SQL Server Management Studio (SSMS) 连接到要从/向其复制数据的数据库,其 AAD 用户至少具有 ALTER ANY USER 权限。 运行以下 T-SQL 语句:
CREATE USER [your managed identity name] FROM EXTERNAL PROVIDER;
如果将系统托管标识用于 ADF,则托管标识名称应为 ADF 名称。 如果将用户分配的托管标识用于 ADF,则托管标识名称应为指定的用户分配的托管标识名称。
向为 ADF 指定的系统/用户分配的托管标识授予所需的权限,就像通常为 SQL 用户所做的那样。 有关相应角色,请参阅数据库级别角色。 运行以下 T-SQL 语句。 有关更多选项,请参阅本文。
EXEC sp_addrolemember [role name], [your managed identity name];
若要将 AAD 身份验证与为 ADF 指定的系统/用户分配的托管标识一起用于访问 Azure SQL 托管实例,请执行以下步骤:
在 Azure 门户中为 Azure SQL 托管实例预配 AAD 管理员(如果尚未这样做)。 AAD 管理员可以是 AAD 用户或组。 如果为具有为 ADF 指定的系统/用户分配的托管标识的组授予管理员角色,请跳过步骤 2-4。 管理员将拥有对 Azure SQL 托管实例的完全访问权限。
创建一个登录名并将其分配给为 ADF 指定的系统/用户分配的托管标识。 在 SSMS 上,使用 SQL Server 帐户(即 sysadmin)连接到 Azure SQL 托管实例。 在 master 数据库中,运行以下 T-SQL 语句:
CREATE LOGIN [your managed identity name] FROM EXTERNAL PROVIDER;
如果将系统托管标识用于 ADF,则托管标识名称应为 ADF 名称。 如果将用户分配的托管标识用于 ADF,则托管标识名称应为指定的用户分配的托管标识名称。
创建一个包含的数据库用户,用于表示为 ADF 指定的系统/用户分配的托管标识。 使用 SSMS 连接到要从/向其复制数据的数据库,并运行以下 T-SQL 语句:
CREATE USER [your managed identity name] FROM EXTERNAL PROVIDER;
向为 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]。