2011-10-05 28 views
1

我有三个SQL Server 2008框,称它们为A,B & C.服务器A & B各有一个链接服务器到服务器C.链接服务器使用完全相同的链接服务器在A &上都设置B.两者都使用完全相同的登录信息连接到C.登录名在框C上分配了sysadmin角色。两者都配置了RPC和RPC OUT设置为true。两者都可以执行SELECT,INSERT,UPDATE,DELETE,没有任何问题。 C已允许远程连接并要求检查分布式事务。SQL Server错误:无法执行远程程序

当我尝试执行存储过程时,问题出现了。 A-> C工作正常,但是当我尝试从B运行时,出现错误:

Msg 7201, Level 17, State 4, Line 1 
Could not execute procedure on remote server 'C' because SQL Server is not configured for remote access. Ask your system administrator to reconfigure SQL Server to allow remote access. 

我已经完全无法弄清楚了。我已检查并重新检查链接的服务器配置。它们在A & B上是完全相同的。我在测试之后运行测试,并且每个人都从A正常工作,但B总是给出错误。

回答

0

执行存储过程时,它将作为创建存储过程的用户的安全上下文运行,而不是执行存储过程的用户的安全上下文。它被认为是一项安全功能。

这可能是因为该帐户用于创建服务器B上的存储过程没有正确的权利而使用的帐户在服务器A上做创建存储过程。

用另一个帐户在B上重新创建存储过程可能会解决问题。