在第二台服务器上执行 SSIS 包,然后写回第一台服务器



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

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

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

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

因此,问题是当包尝试将行从服务器 B 写入服务器 A 时。

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

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

这是"双跃点"身份验证不起作用或未配置的典型情况。
您有几个选项:
1. 更简单:始终从本地 SQL 代理执行 SSIS 包。
2. 长期:配置 Kerberos 并启用双跃点。

有一个文档如何配置 Kerberos:
了解 Kerberos 配置 Kerberos
for SQL Server 2017

相关内容

最新更新