2

我在链接服务器和引用链接服务器的服务器上都有一个域用户。相同的域用户被添加到网络请求 (asp.net) 的池标识中。发生了什么,该应用程序正在成功访问本地数据库并且所有数据都很好。但是,当应用程序尝试访问正在调用链接服务器的存储过程时,它会显示以下错误“用户'NT AUTHORITY\ANONYMOUS LOGON 登录失败”

但更烦人的是它并不总是失败,如果有人登录到 SSMS Web 应用程序可以获取此数据,但如果他从服务器注销,一段时间后此错误开始出现。

当我们在两台服务器(链接服务器和一个使用链接服务器)和 windows 2008 上都有 sql server 2008 R2 时,它工作正常。

但是当我们有 windows 2003 server 和 sql 2005( db 使用链接) 和 windows server 2008 上的 sql server 2008 时失败

4

1 回答 1

1

这是因为 SQL 服务器的“2-Hops”问题。我可以通过两种方式解决这个问题: 1. 仍然使用链接服务器:在远程服务器上创建具有 SQL Server 身份验证的用户并提供所有需要的权限。然后打开链接服务器属性并将您的帐户映射到您刚刚创建的用户,如下所示: 在此处输入图像描述

之后,您将能够运行您的脚本

  1. 使用 openrowset:

    SELECT a.* FROM OPENROWSET('SQLNCLI', 'Server=;Trusted_Connection=yes;', 'SELECT * from .dbo.') AS a;

于 2014-02-05T21:04:49.263 回答