在第二台服务器上执行SSIS包并写回第一台服务器

时间:2019-06-07 19:45:23

标签: ssis

我有两个SQL 2016服务器-A和B。在服务器AI上有一个SQL代理作业,其步骤是执行驻留在服务器B上的SSIS包。服务器B上的包将一行添加到服务器B上的表中并尝试将行写入服务器A上的表。

运行服务器A上的代理作业时,程序包成功在服务器B上写行(存储SSIS程序包并在其中执行),但在服务器A上写行(代理程序作业在此行)时出错正在运行)。

这是我从包装中收到的错误消息:

  

SSISTest:错误:SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。错误代码:0x80040E4D。   OLE DB记录可用。来源:“ Microsoft SQL Server本机客户端11.0”结果:0x80040E4D说明:“用户'NT AUTHORITY \ ANONYMOUS LOGON'的登录失败。”

所以问题是程序包试图将行从服务器B写入服务器A时。

如何更改服务器B上的SSIS包并提供凭据以写入服务器A?或者,是否在相同的域登录名下执行代理作业和程序包?

我尝试将两台服务器的SQL服务帐户作为sysadmins添加到每台服务器上。我还使用我的域登录名在服务器A上创建了凭据和代理帐户,该域登录名是两个服务器上的sysadmin。

1 个答案:

答案 0 :(得分:0)

这是“双跳”身份验证不起作用或未配置的典型情况。
您有几种选择:
1.更简单:始终从本地SQL Agent执行SSIS包。
2.长期:配置Kerberos并启用双跳。

有一个文档介绍如何配置Kerberos:
Understanding Kerberos
Configure Kerberos for SQL Server 2017