この IIS エラー「ユーザー 'IIS APPOOL\Web2' のログインに失敗しました」のユーザーはどこで確認できますか?

この IIS エラー「ユーザー 'IIS APPOOL\Web2' のログインに失敗しました」のユーザーはどこで確認できますか?

次のエラーが発生します:

Cannot open database "testbase" requested by the login. The login failed.
Login failed for user 'IIS APPPOOL\Web2'.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.SqlClient.SqlException: Cannot open database "testbase" requested by the login. The login failed.
Login failed for user 'IIS APPPOOL\Web2'.

では、このユーザーに Web2 権限を付与するには、どこですればよいのでしょうか? (ちなみに、サーバーにはそのようなユーザーはいませんが、 wwwroot フォルダーに というWeb2フォルダーがあります。)Web2

答えを探しましたが、以下のようにすべて失敗しました。

[1] ユーザーをIUSRフォルダに追加し、読み取り権限を付与します。

[2]http://www.codekicks.com/2008/11/cannot-open-database-northwind.html

[3]http://blog.sqlauthority.com/2009/08/20/sql-server-fix-error-cannot-open-database-requested-by-the-login-the-login-failed-login-failed-for-user-nt-authoritynetwork-service/

答え1

SQL Serverにユーザー名「IIS APPPOOL\Web2」のユーザーを追加し、そのユーザーにデータベースへのアクセス権を与える必要があります。ないこのユーザー名は検索で表示されますが、かもしれない「名前を確認」をクリックすると、下線が付くようになります。

アプリ プールの権限を管理する場合を除き、ユーザーは実際にはマシン上に存在しません。

あるいは、アプリケーション プールを別のユーザーとして実行するように設定することもできます。

詳細については、http://blogs.iis.net/webdevelopertips/archive/2009/10/02/tip-98-did-you-know-the-default-application-pool-identity-in-iis-7-5-windows-7-changed-from-networkservice-to-apppoolidentity.aspxそしてhttp://learn.iis.net/page.aspx/624/application-pool-identities/


SQL Server ログイン リストの例を次に示します。

SQL Server ユーザー

以下はデータベースのログイン リストの例です。

データベースユーザー

データベース ユーザーの詳細は次のとおりです (両方のボックスに同じ名前が入力されていることに注意してください。2 番目のボックスは、SQL Server ログイン リストのログイン名と一致する必要があります)。

データベースユーザーの詳細


GUI の代わりにコードを使用することもできます。

USE [master]
GO
CREATE LOGIN [IIS APPPOOL\Web2] FROM WINDOWS WITH DEFAULT_DATABASE=[testbase]
GO

USE [testbase]
GO
CREATE USER [IIS APPPOOL\Web2] FOR LOGIN [IIS APPPOOL\Web2]
GO
EXEC sp_addrolemember N'db_owner', N'IIS APPPOOL\Web2'
GO

所有者権限を割り当てましたが、アプリケーションはより低い権限でも問題なく動作するかもしれません。通常は、問題なく動作する最も低い権限を与えるのが良い方法だと考えられています。

関連情報