Artikel-ID: 316989 - Geändert am: Freitag, 21. September 2007 - Version: 5.6

Fehlermeldung "Fehler bei der Anmeldung für den Benutzer: 'Kontoname' beim Erstellen einer vertrauenswürdigen Datenverbindung von ASP.NET zu SQL Server

SystemtippDieser Artikel bezieht sich auf ein anderes Betriebssystem als das von Ihnen verwendete. Für Sie möglicherweise nicht relevante Artikelinhalte wurden deaktiviert.
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
316989  (http://support.microsoft.com/kb/316989/EN-US/ ) Error message when you create a trusted data connection from ASP.NET to SQL Server: "Login failed for user: 'AccountName'"
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.

Auf dieser Seite

Alles erweitern | Alles schließen

Problembeschreibung

Wenn Sie eine vertrauenswürdige Verbindung von Microsoft ASP.NET zu Microsoft SQL Server erstellen, wird möglicherweise folgende Fehlermeldung angezeigt:
Fehler bei der Anmeldung für den Benutzer 'Computername\ASPNET'
Auf Computern, auf denen IIS 6.0 (Internet Information Services) ausgeführt wird, wird möglicherweise folgende Fehlermeldung angezeigt:
Fehler bei der Anmeldung für den Benutzer 'NT AUTHORITY\NETWORK SERVICE'
Hinweis: Eine der beiden Fehlermeldungen wird speziell dann angezeigt, wenn Sie die integrierte Sicherheit (d.h. das Attribut integrated security=sspi in einer Verbindungszeichenfolge) verwenden.

Ursache

Wenn Sie ASP.NET verwenden, ist der Standardsicherheitskontext das Konto ASPNET (bzw. das Konto "NetworkService" bei einer Anwendung, die unter IIS 6.0 ausgeführt wird) sowohl für "Aspnet_wp.exe" (oder "W3wp.exe" bei einer Anwendung, die unter IIS 6.0 ausgeführt wird) als auch für die Anforderung an SQL Server. Das Konto ASPNET (bzw. das Konto "NetworkService" bei einer Anwendung, die unter IIS 6.0 ausgeführt wird) verfügt standardmäßig über keine Berechtigungen in SQL Server und kann daher nicht auf die Datenbank zugreifen.

Lösung

Wenden Sie eine der folgenden Methoden an, um dieses Problem zu beheben:
  • Methode 1 Ändern Sie den Sicherheitskontext des ASP.NET-Workerprozesses per Programm auf einen Benutzer, der über die erforderlichen SQL Server-Berechtigungen verfügt.
  • Methode 2 Ändern Sie die Standardkonfiguration von ASP.NET so, dass der ASP.NET-Workerprozess unter dem Kontext eines Benutzers gestartet und ausgeführt wird, der über die erforderlichen Berechtigungen in SQL Server verfügt.
  • Methode 3 Gewähren Sie die geeigneten Berechtigungen in SQL Server so, dass das Konto ASPNET (bzw. das Konto "NetworkService" bei einer Anwendung, die unter IIS 6.0 ausgeführt wird) über die geeigneten Zugriffsrechte für die erforderlichen Ressourcen verfügt.

    Hinweis: Diese Methode bewirkt, dass alle Webanwendungen auf dem Server die entsprechenden Berechtigungen auf dem SQL Server-Computer haben.

Status

Es handelt sich hierbei um ein programmtechnisch bedingtes Verhalten.

Weitere Informationen

Schritte zum Reproduzieren des Problems

  1. Erstellen Sie eine neue Microsoft Visual Basic .NET-Webanwendung auf einem Computer, auf dem sowohl ASP.NET als auch SQL Server ausgeführt wird.
  2. Fügen Sie folgenden Code zum Ereignis Page_Load der Seite "Webform1.aspx" hinzu, die mit dem Projekt erstellt wurde:
    Dim con As New System.Data.SqlClient.SqlConnection("data source=localhost;integrated security=sspi;database=northwind")
     con.open()
     con.close()
  3. Erstellen Sie das Projekt, und öffnen Sie die Seite "Webform1.aspx" im Browser.
  4. Ihnen wird jetzt die Fehlermeldung aus dem Abschnitt "Problembeschreibung" angezeigt.

Informationsquellen

Weitere Informationen darüber, wie Sie den Sicherheitskontext des ASP.NET-Workerprozesses mithilfe eines Programms ändern, finden Sie in folgenden Artikeln der Microsoft Knowledge Base:
306158  (http://support.microsoft.com/kb/306158/DE/ ) Implementieren des Identitätswechsels in einer ASP.NET-Anwendung
307002  (http://support.microsoft.com/kb/307002/DE/ ) PRB: ASP-/ODBC-/SQL Server-Fehler 0x80040E4D "Fehler bei der Anmeldung für den Benutzer '(Null)'"
253500  (http://support.microsoft.com/kb/253500/DE/ ) PRB: Fehlermeldung, wenn Fehlermeldung eine Verbindung mit SQL Server von ASP herstellt
306586  (http://support.microsoft.com/kb/306586/DE/ ) "PRB: Anmeldung schlug in ASP fehl, um Fehler 80004005 so zu beheben"
247931  (http://support.microsoft.com/kb/247931/DE/ ) INF: Authentifizierungsmethoden für SQL Server-Verbindungen in Active Server Pages
315158  (http://support.microsoft.com/kb/315158/DE/ ) UPDATE: ASP.NET funktioniert nicht mit einem Domänenkonto ohne Administratorberechtigungen auf einem Domänencontroller
824308  (http://support.microsoft.com/kb/824308/DE/ ) BUG: IWAM-Konto wird die Impersonate-Berechtigung für ASP.NET mit SP4 1.1 auf einem Windows 2000-Domäne-Controller nicht erteilt
Weitere Informationen darüber, wie Sie die Standardkonfiguration des ASP.NET-Sicherheitskontexts ändern, finden Sie auf folgender MSDN-Website (Microsoft Developer Network):
http://msdn2.microsoft.com/en-us/library/ms978378.aspx (http://msdn2.microsoft.com/en-us/library/ms978378.aspx)
Weitere Informationen darüber, wie Sie das Konto ASPNET zu SQL Server hinzufügen, finden Sie unter dem Thema "Hinzufügen eines Windows-Benutzers oder einer Windows-Gruppe" in der SQL Server-Onlinedokumentation.

Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft ASP.NET 1.1
  • Microsoft ADO.NET 1.1
  • Microsoft ASP.NET 1.0
  • Microsoft ADO.NET (included with the .NET Framework)
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft ADO.NET 2.0
Keywords: 
kberrmsg kbfaq kbhttpruntime kbnofix kbprb kbsecurity KB316989
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.