次のエラーメッセージが表示されます。
ログインで要求されたデータベース「SmallBakery」を開けません。ログインに失敗しました。ユーザー 'IIS APPPOOL\MyAppPool'のログインに失敗しました
これをどのように修正できますか? Windows 7 Enterprise EditionとSQL Server 2012を使用しています。
変更しない場合、各アプリプールには独自のIDがあります。あなたの場合、データベースに新しいユーザーを追加しますSmallBakery
という名前でIIS APPPOOL\MyAppPool
SQL Management Studioを使用します。ユーザーリストは、データベースの「セキュリティ/ユーザー」サブノードにあります。これは次のようになります。
テストのために、ユーザーをdb_owner
ロール。それが機能する場合、このロールを削除して、それをdb_datareader
およびdb_datawriter
。
この方法では、各アプリプール(おそらく、各Webサイトがすべて独自のアプリプールを使用している場合)は、対応するデータベースにのみアクセスできます。
アプリでの認証方法に依存します。アプリで偽装を使用しようとしていますか?
現在起こっているのは、データベースにアクセスしようとするときにIISが渡されます。アプリプールのIDをデータベースにアクセスできるものに変更できます。または、統合セキュリティの代わりに特定のログインを使用するように接続文字列を変更できます。
この投稿をチェックしてください。あなたの問題は、私が遭遇した問題と似ており、まったく同じエラーメッセージが表示されます。
これまでに述べたように、アプリプールシステムユーザー(IIS AppPool\myapppool)を取得し、適切な権限を持つデータベースのデータベースユーザーとして追加する必要があります。
これは、IIS/Serverでのみ機能しますが、アプリケーションを別のIIS/Sqlサーバーに移行する予定がある場合は、SQL ServerとIISの両方で変更が必要になることに注意してください。 sqlサーバー認証も検討することをお勧めします。特定の場合により便利です。