ApplicationPoolIdentity des IIS 7.x als SQLServer-Login verwenden

Written on July 30, 2010

Entwickelt man eine ASP.NET (MVC) Website mit dem ASP.NET Development Server und hat eine SQL Server Datenbank im Einsatz, funktioniert zunächst alles problemlos.

Verwendet man jedoch für die Entwicklung einen "echten" IIS 7.x, also z.B. unter Windows 7, erhält man bei Datenbankzugriffen die folgende Exception:

Cannot open database requested by the login. The login failed. Login failed for user IIS APPPool

Die Lösung ist ziemlich einfach -- man muss die Application Pool Identity "IIS APPPOOL\mvcapp" zu den Usern in der Datenbank zuweisen.

Leider klappt dies mit dem SQL Server Management Studio nicht.

Man kann zwar den Namen der Applicationpool Identity einfügen

Benutzer auswählen

und durch "Check Names" validieren lassen

Benutzer validieren

Nach dem Klick auf "OK", erhält man jedoch die Fehlermeldung, dass der User nicht gefunden wurde:

Create failed for Login

Abhilfe schafft die Generierung des Logins via Script:

CREATE LOGIN [IIS APPPOOL\mypool] FROM WINDOWS WITH DEFAULT_DATABASE=[master] USE [mydatabase] CREATE USER [IIS APPPOOL\mypool] FOR LOGIN [IIS APPPOOL\mypool]

Danach kann man im SQL Server Management Studio die Berechtigungen zuweisen, so dass die Website mit der Application Pool Identity funktioniert.

DotNetKicks-DE Image