2

リンクサーバーとリンクサーバーを参照しているサーバーの両方にドメインユーザーがいます。同じドメインユーザーがWeb嘆願(asp.net)のプールIDに追加されます。何が起こっているのか、そのアプリケーションはローカルDBに正常にアクセスしており、すべてのデータが正常に機能しています。しかし、アプリケーションがリンクサーバーを呼び出しているストアドプロシージャにアクセスしようとすると、「ユーザー'NT AUTHORITY \ANONYMOUSLOGONのログインに失敗しました」というエラーが表示されます。

しかし、もっと厄介なのは、誰かがSSMS Webアプリケーションにログインしている場合はこのデータをフェッチできますが、サーバーからログオフすると、しばらくするとこのエラーが表示され始めるため、常に失敗するわけではないということです。

サーバー(リンクサーバーとリンクサーバーを使用するサーバー)とWindows2008の両方にSQLServer 2008 R2がある場合は、正常に機能します。

しかし、Windows2003サーバーとSQL2005(これからのデータベースはリンクされて使用されます)、およびWindowsServer2008上のSQLサーバー2008がある場合は失敗します

4

1 に答える 1

1

これは、SQL サーバーの「2 ホップ」の問題が原因です。私はこの問題を 2 つの方法で解決できました。次に、次のように、リンク サーバーのプロパティを開き、作成したばかりのユーザーへのアカウントのマッピングを開きます。 ここに画像の説明を入力

その後、スクリプトを実行できるようになります

  1. openrowset の使用:

    SELECT a.* FROM OPENROWSET('SQLNCLI', 'Server=;Trusted_Connection=yes;', 'SELECT * from .dbo.') AS a;

于 2014-02-05T21:04:49.263 に答える