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


20

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

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

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

回答:


22

デスクトップから呼び出しているサーバーまでのチェーン内のすべてのマシンは、信頼が最初のホップを通過するために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


1
SPNとKerberosの詳細についての便利なMSDNブログ
JanZahradník15年

また、いずれかのサーバーにDNSエイリアスを使用しているかどうかを確認します。SPNが一致する必要があります。
グレッグ

-1

ここで2つのこと:

  1. ローカルサーバーログインをリモートサーバーにマッピングせずにリンクサーバーを使用する場合は、リモートマシンにログインせず、Windowsログインを使用してスクリプトを実行してください。ダブルホップの問題は、偽装を使用するため、問題になります。

  2. また、通信のためにDCOMCNFGを介してローカルDTCをセットアップする必要があります。添付の写真をご覧ください。

(DCOMCNFG->コンポーネントサービス->コンピューター->マイコンピューター->分散トランザクションコーディネーター-> LocalDTC->プロパティ->セキュリティ)

ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.