IIS/SQL Serverサイトを2008年から2012年に移行していますが、認証に問題があります。 Windows認証を使用してDOMAIN\COMPUTER$
として認証しますが、これは機能せず、次のエラーが表示されます。
ユーザー「DOMAIN\COMPUTER $」のログインに失敗しました。理由:指定された名前に一致するログインが見つかりませんでした。 [クライアント:<ローカルマシン>]
アカウントが存在することを確認し、削除して再作成した
create login "DOMAIN\COMPUTER$" from windows
もう一度実行すると、応答が返されます。
メッセージ15025、レベル16、状態2、行1
サーバープリンシパル 'DOMAIN\COMPUTER $'は既に存在します。
(DOMAIN\COMPUTER
は実際のドメインとコンピュータ名に置き換えられます)
したがって、サイトはSQL Serverにクエリを実行しているようですが、SQL Serverはログインを非常に厳しく調べていません。
私は何を逃したのですか?
IISを使用してApplication Pool Identity
を使用するように変更し、アプリケーションプールIDをNetwork Service
に変更することで、なんとか機能するようになりました。ご自由にコメントしてくださいこれはセキュリティ上の問題を引き起こす可能性があります。
おそらく DOMAIN\computer $ではありません。このメッセージは誤解を招くことがわかっています。 "NT AUTHORITY\NETWORK SERVICE"にサーバーアクセスを許可することだけが必要だと思います。 SQL Serverログインプロパティを開き、このアカウントを追加します。また、IISで使用されているユーザーを確認して匿名ユーザーを偽装します。これは「IUSR_ServerName」のようなものである必要があります。このユーザーにもアクセスを許可してください
@chaと@altの両方に正しい手掛かりがあります。エラーメッセージは誤解を招くものであり、Application Pool Identity
が関係しています(少なくとも、私の場合はそうでした)。
IISアプリのアプリケーションプールでApplication Pool Identity
を使用している場合、SQL Serverに追加する必要があるユーザーアカウントはIIS APPPOOL\your_app_pool_name
です。注:このユーザーを見つけるためにログインプロパティのSearch...
ボタンを使用しないでください-このようになりますそれを見つけても、動作しないMACHINE_NAME\your_app_pool_name
に置き換えます。ログイン名としてIIS APPPOOL\your_app_pool_name
と入力するだけです。
この問題は、サーバーのセットアップに応じて異なる方法で処理する必要があります。
SQLとIISサーバーは同じマシン上にあります。
a。アプリケーションプールIDをNetwork Service
に変更します
b。 SQLサーバーのログインにNT AUTHORITY\NETWORK SERVICE
を追加します
SQLとIISサーバーは異なるマシン上にあります。
a。マシンアカウントDOMAIN\computer-name$
をSQLサーバーログインに追加します。
b。アプリケーションプールIDはApplication Pool Identity
のままです
同じエラーが発生しました。ログオンエラー:18456、重大度:14、状態:5。CEIPを無効にする SQL Serverエラーと使用状況レポート で問題が解決しました。