我疯了同样的问题!我记得用2000做到这一点总是很容易。我已经遍及谷歌了,我无法使它工作。完全相同的设置,两个服务器都运行在域帐户Windows auth上。
我正在尝试使用命名管道而不是TCP,至少我遇到了另一个错误:
EXEC sp_addlinkedserver
@server='statler',
@srvproduct='',
@provider='SQLNCLI',
@datasrc='np:statler',
@provstr='Integrated Security=SSPI'
-- Then I try this:
select net_transport, auth_scheme
from statler.master.sys.dm_exec_connections
where session_id=@@spid
/*
Getting closer, but still fails:
OLE DB provider "SQLNCLI" for linked server "statler" returned message
"Login timeout expired".
OLE DB provider "SQLNCLI" for linked server "statler" returned message
"An error has occurred while establishing a connection to the server.
When connecting to SQL Server 2005, this failure may be caused by the
fact that under the default settings SQL Server does not allow
remote connections.".
Msg 5, Level 16, State 1, Line 0
Named Pipes Provider: Could not open a connection to SQL Server [5].
OLE DB provider "SQLNCLI" for linked server "statler" returned message
"Invalid connection string attribute".
*/
这可能与启用名称管道有关,但是我可以通过sqlcmd从服务器A连接到服务器B,如下所示:
WALDORF:> Sqlcmd.exe /E /Snp:statler
如果我不使用命名管道,请执行以下操作:
New Linked Server
Server Type: SqlServer
Security: be made using the current login's security context
我得到这个:
Login failed for user NT AUTHORITY\ANONYMOUS LOGIN
[编辑]我开始在Sql Server Central上对此进行讨论。基本上,您必须进行一些与Kerberos委派有关的复杂配置,才能使其工作。
http://www.sqlservercentral.com/Forums/Topic574262-146-1.aspx
我决定只创建一个有限的SQL登录帐户来处理链接的查询。我讨厌诉诸于此,但它似乎比为了使其与Windows Auth一起使用而必须进行的更改更为安全。