【发布时间】:2022-07-27 09:07:35
【问题描述】:
我正在尝试使用 SSIS 中的 Azure 服务主体连接到 Azure SQL 托管实例。我使用 Microsoft OLE DB Driver for SQL Server 在 SSIS 中创建了一个连接管理器。在连接管理器中,我使用 Active Directory - 服务主体作为身份验证类型连接到服务器。我在连接管理器中将服务主体 GUID 作为用户名和密码传递。
当我在 Visual Studio 中对此进行测试时,我能够建立连接并运行 SSIS。 SSIS 包按预期传输数据而不会出现问题。但是,当我部署 Azure SQL 服务器并在 Azure 数据工厂管道中运行 SSIS 包时,我收到了一个错误。
用户(服务主体 GUID)登录失败。 SSIS 错误代码 DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。对连接管理器“Azure 服务主体”的 AcquireConnection 方法调用失败,错误代码为 0xC0202009。
服务主体设置为 SQL 托管实例上的用户,并且它对数据库具有 db 所有者权限。我检查了日志,并且身份验证正在访问 SQL 托管实例,但它似乎正在尝试使用 SQL 身份验证而不是 Active Directory 服务主体身份验证。
这就是连接字符串的样子。
数据源=(SQL 托管实例);用户 ID=(服务原则 GUID);初始目录=(我的数据库);提供者=MSOLEDBSQL.1;持久安全信息=假;自动翻译=假;应用程序名称=( SSIS 包名称和 GUID);对数据使用加密=True;Authentication=ActiveDirectoryServicePrincipal;
我检查了 Visual Studio 中的连接字符串与数据工厂中使用的连接字符串,它们是相同的。我尝试使用服务主体帐户名称而不是 GUID,并且得到了相同的结果。 SSIS 包非常简单,它连接到一台服务器并将数据移动到托管实例。
【问题讨论】:
标签: azure authentication ssis azure-data-factory azure-data-factory-pipeline