web-dev-qa-db-ja.com

ユーザー 'IIS APPPOOL \ myAppPoolのログインに失敗しました

次のエラーメッセージが表示されます。

ログインで要求されたデータベース「SmallBakery」を開けません。ログインに失敗しました。ユーザー 'IIS APPPOOL\MyAppPool'のログインに失敗しました

これをどのように修正できますか? Windows 7 Enterprise EditionとSQL Server 2012を使用しています。

20
Freddy

変更しない場合、各アプリプールには独自のIDがあります。あなたの場合、データベースに新しいユーザーを追加しますSmallBakeryという名前でIIS APPPOOL\MyAppPool SQL Management Studioを使用します。ユーザーリストは、データベースの「セキュリティ/ユーザー」サブノードにあります。これは次のようになります。

enter image description here

テストのために、ユーザーをdb_ownerロール。それが機能する場合、このロールを削除して、それをdb_datareaderおよびdb_datawriter

この方法では、各アプリプール(おそらく、各Webサイトがすべて独自のアプリプールを使用している場合)は、対応するデータベースにのみアクセスできます。

21
Linus Caldwell

アプリでの認証方法に依存します。アプリで偽装を使用しようとしていますか?

現在起こっているのは、データベースにアクセスしようとするときにIISが渡されます。アプリプールのIDをデータベースにアクセスできるものに変更できます。または、統合セキュリティの代わりに特定のログインを使用するように接続文字列を変更できます。

1
squillman

私の場合、これらの手順により、このエラーを正常に処理できます。

enter image description here

0

この投稿をチェックしてください。あなたの問題は、私が遭遇した問題と似ており、まったく同じエラーメッセージが表示されます。

http://blogs.msdn.com/b/sqlexpress/archive/2011/12/09/using-localdb-with-full-iis-part-2-instance-ownership.aspx

0
Mike Marks

これまでに述べたように、アプリプールシステムユーザー(IIS AppPool\myapppool)を取得し、適切な権限を持つデータベースのデータベースユーザーとして追加する必要があります。

これは、IIS/Serverでのみ機能しますが、アプリケーションを別のIIS/Sqlサーバーに移行する予定がある場合は、SQL ServerとIISの両方で変更が必要になることに注意してください。 sqlサーバー認証も検討することをお勧めします。特定の場合により便利です。

0
Orland Mendes