web-dev-qa-db-ja.com

SQL Server 2012がマシンアカウントでログインできない

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はログインを非常に厳しく調べていません。

私は何を逃したのですか?

11
alt

IISを使用してApplication Pool Identityを使用するように変更し、アプリケーションプールIDをNetwork Serviceに変更することで、なんとか機能するようになりました。ご自由にコメントしてくださいこれはセキュリティ上の問題を引き起こす可能性があります。

1
alt

おそらく DOMAIN\computer $ではありません。このメッセージは誤解を招くことがわかっています。 "NT AUTHORITY\NETWORK SERVICE"にサーバーアクセスを許可することだけが必要だと思います。 SQL Serverログインプロパティを開き、このアカウントを追加します。また、IISで使用されているユーザーを確認して匿名ユーザーを偽装します。これは「IUSR_ServerName」のようなものである必要があります。このユーザーにもアクセスを許可してください

6
cha

@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と入力するだけです。

6

この問題は、サーバーのセットアップに応じて異なる方法で処理する必要があります。

  1. SQLとIISサーバーは同じマシン上にあります。

    a。アプリケーションプールIDをNetwork Serviceに変更します

    b。 SQLサーバーのログインにNT AUTHORITY\NETWORK SERVICEを追加します

  2. SQLとIISサーバーは異なるマシン上にあります。

    a。マシンアカウントDOMAIN\computer-name$をSQLサーバーログインに追加します。

    b。アプリケーションプールIDはApplication Pool Identityのままです

3
maxisam

同じエラーが発生しました。ログオンエラー:18456、重大度:14、状態:5。CEIPを無効にする SQL Serverエラーと使用状況レポート で問題が解決しました。

0
Ayan Mullick