繁体   English   中英

如何在 SSIS 中使用服务主体连接到 Azure SQL 托管实例?

[英]How to connect to an Azure SQL managed instance in SSIS using a service principal in a Azure data factory pipeline?

我正在尝试使用 ZD9041BD2326FDCC8B.26 中的 Azure 服务主体连接到 Azure SQL 托管实例我使用 SQL 服务器的 Microsoft OLE DB 驱动程序在 SSIS 中创建了一个连接管理器。 在连接管理器中,我使用 Active Directory - 服务主体作为身份验证类型连接到服务器。 我将服务主体 GUID 作为连接管理器中的用户名和密码传递。

当我在 Visual Studio 中进行测试时,我能够建立连接并运行 SSIS。 SSIS package 按预期传输数据,没有问题。 However, when I deploy the Azure SQL server and run the SSIS package in an Azure data factory pipeline I get an error.

用户(服务主体 GUID)登录失败。 SSIS 错误代码 DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。 对连接管理器“Azure 服务主体”的 AcquireConnection 方法调用失败,错误代码为 0xC0202009。

服务主体设置为 SQL 托管实例上的用户,并且它具有数据库的 db 所有者权限。 我检查了日志,并且身份验证正在访问 SQL 托管实例,但看起来它正在尝试使用 SQL 身份验证而不是 Active Directory 服务主体身份验证。

这就是连接字符串的样子。

数据源=(SQL 托管实例);用户 ID=(服务原则 GUID);初始目录=(我的数据库);提供者=MSOLEDBSQL.1;持久安全信息=False;自动翻译=False;应用程序名称=(SSIS Package 名称和 GUID);对数据使用加密=True;Authentication=ActiveDirectoryServicePrincipal;

我检查了 Visual Studio 中的连接字符串与数据工厂中使用的连接字符串,它们是相同的。 我尝试使用服务主体帐户名称而不是 GUID,并且得到了相同的结果。 SSIS package 非常简单,它连接到一台服务器并将数据移动到托管实例。

AD 服务主体在驱动程序级别受支持,但在“Microsoft OLEDB Driver 18 for SQL Server - 18.1.0.0”中内置的版本 SSIS IR 不支持。 理论上,自定义设置安装支持的驱动程序版本( https://docs.microsoft.com/en-us/sql/connect/oledb/features/using-azure-active-directory ),它可以工作,但需要尝试。

如果您可以使用微星。 SSIS IR 原生支持微星https://docs.microsoft.com/en-us/sql/integration-services/connection-manager/ole-db-connection-manager?view=sql-server-2017#managed-identities-for -天蓝色资源身份验证

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM