查询在SSMS查询窗口中通过链接服务器工作,但是通过SQL Server代理程序作业

时间:2016-12-22 14:03:45

标签: sql-server sql-server-2008-r2 linked-server

我们在每个环境中都有2个SQL Server。服务器A是我们的数据仓库SQL Server,服务器B是我们的OLTP服务器。我们有以下环境PROD,STAGE,SIT,DEV。我们在每个环境中的服务器A上配置了一个链接服务器,以便在服务器B上读取,写入和执行存储过程。在服务器A上创建了一个SQL作业,以便从服务器B执行一个简单的select语句来测试连接。将运行所有作业的服务帐户配置为作业所有者和“以用户身份运行”。在Prod,STAGE和SIT中,测试工作正在进行中。在DEV中,测试作业失败,并显示消息“由于当前安全上下文不受信任而拒绝访问远程服务器”

我已登录服务器A作为服务帐户,并在查询窗口中对服务器B运行完全select命令,该命令成功返回结果。

我在DEV中的服务器A上尝试了一个调用SSIS包的SQL作业。它通过代理服务器使用与测试作业相同的服务帐户。凭据。 SSIS包在服务器B上调用存储过程。当我运行此作业时,它成功执行并在服务器B上执行将数据写入服务器B的存储过程。

我验证了服务帐户具有在所有环境中设置相同的管理员权限。

我验证了链接服务器在所有环境中具有相同的配置。

我尝试设置链接服务器以将服务器A上的服务帐户链接到服务器B上的SQL帐户

我尝试在服务器B上将链接服务器设置为“使用登录的当前安全上下文”

我尝试将SQL作业更改为作为操作系统CmdExec运行。 SQLCMD -E -Q“从[服务器]中选择*。[数据库]。[模式]。表”使用与正在工作的作业相同的代理和凭证。这导致以下错误 “在建立与SQL Server的连接时发生了与网络相关或特定于实例的effor。找不到或无法访问服务器。检查实例名称是否正确以及SQL Server是否配置为允许远程连接。”

我验证了服务器可以相互ping通。

我通过命令行运行SQLCMD -L来验证服务器是否存在。

我在配置管理器中的服务器A和B上启用了命名管道协议。

我尝试在我作为SA的凭据下运行测试作业并获得相同的

  

“拒绝访问远程服务器,因为当前的安全上下文不受信任”消息。

我尝试使用我的凭据将SQL从测试作业复制并粘贴到服务器A上的查询窗口中,并且能够成功运行查询。

我尝试重新创建SQL作业。

我尝试重新启动SQL服务。

我能想到的这个环境与其他环境之间唯一明显的区别是服务器A是一个命名实例,而服务器B是一个默认实例。

另外值得注意的是,服务器B上的SQL浏览器服务由本地帐户而不是服务帐户运行。服务器A上的SQL浏览器由服务帐户运行。

0 个答案:

没有答案