2010-12-09 8 views
1

ServerAからsp_addlinkedserver 'ServerB\Instance'、ServerBからsp_addlinkedserver 'ServerA\Instance'を使用してリンクされた2つのSQL Serverがあります。SQL Server - リンクされたサーバーで、一方向のクエリはうまくいきますが、もう一方のクエリはうまくいきますか?

サーバーAはその後、すべてが大丈夫ですから、私は次のクエリを実行する場合:私は、サーバーBから次のクエリを実行した場合

SELECT * 
FROM [ServerB\Instance].Database.dbo.Table 

エラーが発生します。

SELECT * 
FROM [ServerA\Instance].Database.dbo.Table 

エラー:

Msg 18456, Level 14, State 1, Line 1 Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.

SQL ServerがServerAおよびServerBで実行するサービスアカウントには、昇格されたp問題を解決しようとして両方のサーバー上のermissionを実行しますが、成功しません。

私はresearchを行っていますが、片方向の通信が大丈夫ならば複雑なプロセスを避けたいと考えています。

答えて

1

:両方のリンクサーバーを削除した

  1. を。
  2. ServerA RDP(SSMS)からServerA用、およびServerB RDP(SSMS)からServerB用にsp_addlinkedserverを実行しました。

以前は、1台のサーバーRDP(SSMS)セッションから両方のサーバーに対してsp_addlinkedserverを実行しました。各サーバーから実行することで問題は解決しました。誰かがこれがなぜなのかについてのコメントを追加できるなら、私は非常に感謝します。

+0

@Charles Boyungの回答は正しい – tomfanning

+0

これも私にとって問題を解決しました。私のすべてのサーバーをSSMSからクロスリンクしようとしました。理由は、あなたがこのようにしているときに、あなたがセカンドホップを呼び出しているということです。リンクされたサーバーを直接サーバーコンソールから追加すると、それが私のために修正されました。 – JohnFx

2

SQL Management Studioでは、サーバーBからサーバーAへのリンクサーバーのプロパティを表示します。そこから表示できるセキュリティタブがあります。これは、BからAへの接続が使用しているセキュリティコンテキストを示します。リンクサーバーに有効なセキュリティコンテキストが設定されていないと、通常はエラーが発生します。

AからB、BからAでは動作しないのは、リンクされたサーバーを各側で正しく設定する必要があるからです。ただ一つのためにそれを行うことは両方の方法を行くように働くつもりはありません。

0

は、この問題を回避するには、次のいずれかの方法を使用するには::

  • 標準セキュリティログインにサーバーA上のクライアント地図Doが、ここで説明したように)(は、sp_addremoteloginを呼び出すことによってこれを行うことができます サーバーBで、sp_addlinkedsrvloginストアドプロシージャまたはEnterprise Managerの[リンクされたサーバーのプロパティ]ダイアログボックスの[セキュリティ]タブのいずれかを使用して、

  • Microsoft Windows 2000ベースのコンピュータで実行されているSQL Serverのインスタンスで分散クエリを実行する場合、名前付きパイプサーバーネットワークライブラリを使用してクライアント要求をリッスンするようにSQL Serverを構成します。 TCP/IPサーバーネットワークライブラリ、またはマルチプロトコルサーバーネットワークライブラリを使用します。 SQL Serverのサーバーネットワークライブラリを構成するには、サーバーネットワークユーティリティを使用します。

を見てみましょう:私はプロセスに従うことによって、これを解決した

http://support.microsoft.com/kb/238477

関連する問題