現在オフラインです。再接続するためにインターネットの接続を待っています

[SQL]PRB: 分散クエリでメッセージ 18456 が返される

この記事は、以前は次の ID で公開されていました: JP238477
現象
SQL Server リンク サーバーに対して分散クエリを実行した時に、次のメッセージを受け取ることがあります。
Server: Msg 18456, Level 14, State 1, Line 1
Login failed for user '\'.
原因
このメッセージは、クライアント接続の権限を借用するために Windows NT 認証を使用して、リンク サーバーにアクセスを試みていることを示しています。Windows NT 4.0 では、資格証明の委任 ("double hop" と呼ばれることもあります。) はサポートされていません。

たとえば、次の構成の場合を考えてみます。
  • サーバー A とサーバー B に SQL Server がインストールされています。クライアント コンピュータ C があります。
  • サーバー B は、次のいずれかを使用して、サーバー A 上でリンク サーバーとして設定されています。
    • sp_addlinkedsrvlogin ストアド プロシージャの useself オプション

      - または -
    • Enterprise Manager 「リンク サーバーのプロパティ」ダイアログ ボックスの「セキュリティ」タブの「権限を借用する」
この構成が与えられている場合、次の状況が適用されます。

サーバー A 上のユーザーは、Windows NT 認証を用いてサーバー A に接続することができます。そして、ユーザー自身の Windows NT セキュリティ アカウント下でリンク サーバー B へのクエリの実行が可能です。(適切なアクセスが許可されていることを仮定しています。) Windows NT 資格証明は、サーバー A からサーバー B への "single hop" を行わなければならないだけです。

クライアント C 上のユーザーは、Windows NT 認証を用いてサーバー A に接続することができます。しかし、リンク サーバー B に対してクエリを実行した場合、Msg 18456 で失敗します。これは、"double hop" であると考えられます。なぜなら、クライアント C からの Windows NT 資格証明は、最初にサーバー A へ送られます。そして、リモート クエリのために、サーバー A からサーバー B へ 2 番目の hop が行われますが、これは Windows NT 4.0 下ではサポートされていません。
回避策
この問題を回避するために、sp_addlinkedsrvlogin ストアド プロシージャまたは Enterprise Manager 「リンク サーバーのプロパティ」ダイアログ ボックスの「セキュリティ」タブを使用して、サーバー A 上のクライアントをサーバー B 上の標準セキュリティ ログインにマップします。
関連情報
この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 238477 (最終更新日 2000-02-16) をもとに作成したものです。


err error dist
プロパティ

文書番号:238477 - 最終更新日: 05/01/2003 02:31:00 - リビジョン: 1.0

  • Microsoft SQL Server 7.0 Standard Edition
  • distributed query kbprb KB238477
フィードバック