web-dev-qa-db-ja.com

Windows認証を使用してリンクサーバーを機能させるにはどうすればよいですか?

ドメイン環境で「ログインの現在のセキュリティコンテキストを使用して作成する」を使用して、別のサーバーServerBに作成されたサーバーAへのリンクサーバーを取得しようとしています。 Kerberosを有効にするには、各サーバーでSQL Serverを実行するサービスアカウント用にSPNを作成する必要があると読みました。私はそれを実行しましたが、どちらも認証スキームがKerberosであることを示していますが、私はまだエラーに直面しています:

"Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'".

Active Directoryでは、ServerBのサービスアカウントがMSSQLSvcへの委任に対して信頼されていることがわかりますが、ServerAのサービスアカウントではまだ「このユーザーの委任を信頼する」が有効になっていないことに気付きました。ターゲットサーバーでもそのオプションを有効にする必要がありますか?リンクサーバーを使用するために現在のWindowsログインを使用できるようにするために他に必要なものはありますか?

20

デスクトップから呼び出し先のサーバーまでのチェーン内のすべてのマシンで、最初のホップを越えて信頼を進めるには、Kerberosを有効にする必要があります。つまり、サーバーは委任に対してユーザーを信頼する必要があります。

「ユーザー 'NT AUTHORITY\ANONYMOUS LOGON'のログインに失敗しました」は、ほとんどの場合、委任の問題を示しています。

  • Windowsアカウントは、ServerAとServerBの両方にアクセスできる必要があります。
  • 「アカウントは機密情報であり、委任できない」という設定があってはなりません。
  • ServerAとServerBの両方に独自のSPNが登録されている必要があります。
  • サーバーは、TCP/IPまたは名前付きパイプで接続されている必要があります。

詳細については、SQL Server Books Onlineの記事「リンクサーバーを委任用に構成する」を参照してください: http://msdn.Microsoft.com/en-us/library/ms189580(v = sql.105).aspx

22
RLF