私も同じ問題に夢中です!2000年にこれを行うのはいつも簡単だったことを覚えています。私はグーグルを使いこなしてきましたが、これを機能させることはできません。まったく同じセットアップ、両方のサーバーがドメインアカウント、Windows認証で実行されています。
私は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".
*/
これは名前パイプを有効にすることと関係があるかもしれませんが、次のようにサーバーAからサーバーBにsqlcmd経由で接続できます。
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で動作させるために必要な変更よりも安全であるようです。