MSSQLSERVER_18456
Gilt für: SQL Server
Details
attribute | Wert |
---|---|
Produktname | SQL Server |
Ereignis-ID | 18456 |
Ereignisquelle | MSSQLSERVER |
Komponente | SQLEngine |
Symbolischer Name | LOGON_FAILED |
Meldungstext | Fehler bei der Anmeldung für den Benutzer '%.*ls'.%.*ls |
Erklärung
Diese Fehlermeldung wird angezeigt, wenn ein Verbindungsversuch aufgrund eines Authentifizierungsfehlers abgelehnt wird. Benutzeranmeldungen können aus vielen Gründen fehlschlagen, z. B. ungültige Anmeldeinformationen, Kennwortablauf und Aktivieren des falschen Authentifizierungsmodus. In vielen Fällen enthalten Fehlercodes Beschreibungen.
Aktion des Benutzers
Die folgenden Beispiele sind einige der allgemeinen Anmeldefehler. Wählen Sie den genauen Fehler aus, der bei der Problembehandlung auftritt:
Fehler bei der Anmeldung für den Benutzer "<Benutzername>" oder "Anmeldung" für den Benutzer "<Domäne>\<Benutzername>"
Wenn der Domänenname nicht angegeben ist, ist das Problem ein fehlerhafter SQL Server-Anmeldeversuch. Wenn der Domänenname angegeben ist, ist das Problem eine fehlerhafte Windows-Benutzerkontoanmeldung. Mögliche Ursachen und vorgeschlagene Lösungen finden Sie unter:
Potential cause (Mögliche Ursache) | Vorgeschlagene Lösung |
---|---|
Sie versuchen, die SQL Server-Authentifizierung zu verwenden , die SQL Server-Instanz ist jedoch für den Windows-Authentifizierungsmodus konfiguriert. | Stellen Sie sicher, dass SQL Server für die Verwendung des SQL Server- und Windows-Authentifizierungsmodus konfiguriert ist. Sie können den Authentifizierungsmodus für Ihre SQL Server-Instanz auf der Seite "Sicherheit " unter "Eigenschaften " für die entsprechende Instanz in SQL Server Management Studio (SSMS) überprüfen und ändern. Weitere Informationen finden Sie unter Ändern des Serverauthentifizierungsmodus. Alternativ können Sie Ihre Anwendung so ändern, dass sie den Windows-Authentifizierungsmodus zum Herstellen einer Verbindung mit SQL Server verwendet. Hinweis: Sie können eine Meldung wie die folgende im SQL Server-Fehlerprotokoll für dieses Szenario sehen: Login failed for user '<UserName>'. Reason: An attempt to login using SQL authentication failed. Server is configured for Windows authentication only. |
Sie versuchen, über eine Gruppe auf SQL Server zuzugreifen, und es wird eine Fehlermeldung angezeigt. | Wenn Sie nicht über die erforderlichen Berechtigungen für den Zugriff auf den Server verfügen, zeigt der Anbieter die Fehlermeldung "Login failed for user 'contoso/user1'" an. Verwenden Sie das Feature "Zugriff über Gruppe", mit dem Sie auf einen Server basierend auf Ihrer Gruppenmitgliedschaft zugreifen können. Wenn Sie die xp_logininfo 'contoso/user1' gespeicherte Prozedur ausführen, kann Folgendes auftreten:– Wenn ein Fehler angezeigt wird, kann SQL Server den Benutzernamen überhaupt nicht beheben. Es ist wahrscheinlich, dass ein Name nicht im Active Directory (AD) vorhanden ist oder probleme beim Herstellen einer Verbindung mit dem Domänencontroller (DC) auftreten können. Versuchen Sie es mit einem anderen Namen, um zu überprüfen, ob das Problem für ein bestimmtes Konto spezifisch ist. – Wenn Sie eine Verbindung mit einem domänenübergreifenden Server herstellen, muss sich die Gruppe in der SQL Server-Domäne und nicht in der Benutzerdomäne befinden, damit ihre Mitgliedschaft aufgelöst werden kann. - Wenn eine Datenbankabfrage keine Zeilen zurückgibt, bedeutet dies, dass keine Gruppe vorhanden ist, die Zugriff auf den Server ermöglicht. Wenn eine Abfrage eine oder mehrere Zeilen zurückgibt, bedeutet dies, dass der Benutzer zu einer Gruppe gehört, die Zugriff ermöglicht. Die DBA kann die Berechtigungen doppelt überprüfen, indem sie den Ordner "Security\Logins " in SQL Server Management Studio (SSMS) überprüfen. Die Sicherheits\Anmeldungen zeigen eine Liste der erstellten Anmeldungen an. Wenn es sich um eine enthaltene Datenbank handelt, kann die DBA die Sicherheit\Anmeldungen unter dem Datenbanknamen überprüfen und verwalten, um die Anmeldungen zu überprüfen und zu verwalten. Weitere Informationen finden Sie unter Konfigurieren der Benutzerzugriffskontrolle und -berechtigungen. |
SQL-Anmeldungen sind nicht aktiviert | Möglicherweise zeigt das Datenbankverwaltungssystem (DBMS) eine Variation der Login failed for user '<username>' Nachricht an. Um diesen Fehler zu beheben, führen Sie folgende Schritte aus:1. Überprüfen Sie, ob das SQL Server-Fehlerprotokoll die Fehlermeldung "Login failed for user '<username>' enthält. Grund: Fehler beim Versuch, sich mit SQL-Authentifizierung anzumelden. Der Server ist nur für Windows-Authentifizierung konfiguriert." 2. Verwenden Sie eine der folgenden Methoden, um den Fehler zu beheben: - Verwenden Sie eine integrierte Anmeldung. Fügen Sie INTEGRATED SECURITY=SSPI beispielsweise für OLE DB-Anbieter dem Verbindungszeichenfolge und für ODBC-Treiber hinzuTRUSTED_CONNECTION=YES . Der .NET-Anbieter akzeptiert eine der beiden Syntaxen.Hinweis: Dies kann zu anderen Problemen führen, wenn sie nicht ordnungsgemäß konfiguriert sind, um die integrierte Authentifizierung zuzulassen, und die Untersuchung als separates Problem erforderlich ist. - Sql-Anmeldungen auf dem Server aktivieren: a. Klicken Sie in SQL Server Management Studio in Objekt-Explorer mit der rechten Maustaste auf den SQL Server-Namen, und wählen Sie "Eigenschaften" aus. b. Wählen Sie im Sicherheitsbereich den SQL Server- und Windows-Authentifizierungsmodus aus. c. Wählen Sie OK aus. d. Starten Sie SQL Server neu, damit die Änderung stattfindet. Hinweis: Dies kann zu anderen Problemen führen, z. B. das Definieren einer SQL-Anmeldung. – Versuchen Sie, ein lokales Windows-Konto oder ein Domänenkonto für den Benutzernamen anzugeben. Es sind nur SQL-Anmeldungen zulässig. Die Anwendung sollte integrierte Sicherheit verwenden. |
Die Anmeldung ist in der SQL Server-Instanz, mit der Sie eine Verbindung herstellen möchten, nicht vorhanden. | Überprüfen Sie, ob die SQL Server-Anmeldung existiert und ob Sie sie richtig geschrieben haben. Wenn die Anmeldung nicht existiert, erstellen Sie sie. Wenn sie existiert, aber nur falsch geschrieben ist, korrigieren Sie dies in der Verbindungszeichenfolge der Anwendung. Der SQL Server-Fehlerprotokoll enthält eine der folgenden Meldungen: - Login failed for user 'username'. Reason: Could not find a login matching the name provided. - Login failed for user 'Domain\username'. Reason: Could not find a login matching the name provided. Dies kann ein häufiges Problem sein, wenn Sie eine Anwendung, die einen DEV- oder QA-Server verwendet, in der Produktion einsetzen und es versäumen, die Verbindungszeichenfolge zu aktualisieren. Um dieses Problem zu beheben, überprüfen Sie, ob Sie sich mit dem richtigen Server verbinden. Wenn nicht, korrigieren Sie die Verbindungszeichenfolge. Gewähren Sie in diesem Beispiel den Anmeldezugriff auf Ihren SQL Server. Oder wenn es sich um eine Windows-Anmeldung handelt, gewähren Sie direkt Zugriff oder fügen Sie sie einer lokalen Gruppe hinzu Standard die eine Verbindung mit dem Datenbankserver herstellen darf. Weitere Informationen finden Sie unter Erstellen eines Anmeldenamens. |
Sie verwenden die SQL Server-Authentifizierung, aber das kennwort, das Sie für die SQL Server-Anmeldung angegeben haben, ist falsch. | Überprüfen Sie das SQL-Fehlerprotokoll auf Nachrichten wie "Reason: Password did not match that for the login provided" to confirm the cause. Um das Problem zu beheben, verwenden Sie das richtige Kennwort in Ihrer Anwendung, oder verwenden Sie ein anderes Konto, wenn Sie sich das Kennwort nicht merken können. Alternativ können Sie mit Ihrem SQL Server-Administrator das Kennwort für das Konto zurücksetzen. Wenn die Anwendung SQL Server Integration Services (SSIS) ist, gibt es möglicherweise mehrere Ebenen einer Konfigurationsdatei für den Auftrag, die die Verbindungs-Manager Einstellungen für das Paket überschreiben kann. Wenn die Anwendung von Ihrem Unternehmen geschrieben wurde und die Verbindungszeichenfolge programmgesteuert generiert wird, wenden Sie sich an das Entwicklungsteam, um das Problem zu beheben. Als temporäre Problemumgehung programmieren Sie die Verbindungszeichenfolge und testen. Verwenden Sie eine UDL-Datei oder ein Skript, um zu beweisen, dass eine Verbindung mit einer hartcodierten Verbindungszeichenfolge möglich ist. |
Die Verbindungszeichenfolge weist falsche Syntax, Servername oder Benutzeranmeldeinformationen auf. | Führen Sie folgende Schritte aus, um das Problem zu beheben:
|
Keine Anmeldung | Überprüfen Sie, ob SQL Server die folgenden Meldungen anzeigt:Logon Error: 18456, Severity: 14, State: 11. Logon Login failed for user 'CONTOSO\JohnDoe'. Reason: Token-based server access validation failed with an infrastructure error. Check for previous errors. [CLIENT: ] Einige der Fehler gehören zum Anonymen Anmeldekonto. Dies bezieht sich auf das Kerberos-Problem. In der HOSTS-Datei gab es einen ungültigen manuellen Eintrag, d. h., der falsche Servername wurde angegeben. Die verbleibenden Probleme können in die folgenden Kategorien fallen:
|
Sie versuchen, eine Verbindung mit Windows-Authentifizierung herzustellen, sind aber bei einer falschen Domäne angemeldet. | Stellen Sie sicher, dass Sie ordnungsgemäß bei der richtigen Domäne angemeldet sind. Die Fehlermeldung zeigt in der Regel den Domänennamen an. |
Überprüfen von Datenbankberechtigungen | Die Datenbank wird in SQL Server Management Studio nicht offline angezeigt. Andere Benutzer, z. B. die DBA, können eine Verbindung damit herstellen. Dem betreffenden Benutzerkonto muss expliziter Zugriff auf die Datenbank gewährt oder einer SQL Server-Rolle oder einer lokalen Windows-Gruppe oder Domänengruppe hinzugefügt werden, die Zugriff auf die Datenbank hat. Weitere Informationen finden Sie unter CREATE USER, ALTER ROLE und ALTER SERVER ROLE |
Sie führen Ihre Anwendung (z. B. SSMS) nicht als Administrator aus. | Wenn Sie versuchen, eine Verbindung mit Ihren Administratoranmeldeinformationen herzustellen, starten Sie Ihre Anwendung mit der Option "Als Administrator ausführen". Fügen Sie den Windows-Benutzer nach dem Herstellen der Verbindung als einzelne Anmeldung hinzu. |
Die Anmeldung wird nach einer Migration zu einem enthaltenen Datenbankbenutzer gelöscht. | Wenn die Datenbank-Engine enthaltene Datenbanken unterstützt, vergewissern Sie sich, dass die Anmeldung nach der Migration zu einem enthaltenen Datenbankbenutzer nicht gelöscht wurde. Weitere Informationen finden Sie unter "Enthaltene Datenbankauthentifizierung: Einführung". |
Die Standarddatenbank der Anmeldung ist offline oder anderweitig nicht verfügbar. | Wenden Sie sich an Ihren SQL Server-Administrator, und beheben Sie Probleme im Zusammenhang mit der Datenbankverfügbarkeit. Wenn die Anmeldung über Berechtigungen für andere Datenbanken auf dem Server verfügt und Sie nicht auf die aktuell konfigurierte Standarddatenbank in Ihrer Anwendung zugreifen müssen, verwenden Sie eine der folgenden Optionen: – Fordern Sie den Administrator an, die Standarddatenbank für die Anmeldung mithilfe der ALTER LOGIN-Anweisung oder SSMS zu ändern. - Geben Sie explizit eine andere Datenbank in Ihrer Anwendung Verbindungszeichenfolge an. Oder wenn Sie SSMS verwenden, wechseln Sie zur Registerkarte "Verbindungseigenschaften ", um eine Datenbank anzugeben, die derzeit verfügbar ist.Anwendungen wie SSMS können eine Fehlermeldung wie die folgende anzeigen: Cannot open user default database. Login failed. Login failed for user <user name>. (Microsoft SQL Server, Error: 4064) Sql Server Errorlog hat eine Fehlermeldung wie die folgende: Login failed for user '<user name>'. Reason: Failed to open the database '<dbname>' specified in the login properties [CLIENT: <ip address>] Weitere Informationen finden Sie unter MSSQLSERVER_4064. |
Die in der Verbindungszeichenfolge oder in SSMS explizit angegebene Datenbank ist falsch geschrieben, offline oder anderweitig nicht verfügbar. | – Korrigieren Sie den Datenbanknamen im Verbindungszeichenfolge. Beachten Sie die Groß-/Kleinschreibung bei Verwendung einer Sortierung zwischen Groß- und Kleinschreibung auf dem Server. – Wenn der Datenbankname korrekt ist, wenden Sie sich an Ihren SQL Server-Administrator, und beheben Sie Probleme im Zusammenhang mit der Datenbankverfügbarkeit. Überprüfen Sie, ob die Datenbank offline ist, nicht wiederhergestellt usw. – Wenn die Anmeldung Benutzern mit Berechtigungen für andere Datenbanken auf dem Server zugeordnet wurde und Sie nicht auf die aktuell konfigurierte Datenbank in Ihrer Anwendung zugreifen müssen, geben Sie in Ihrer Verbindungszeichenfolge eine andere Datenbank an. Oder wenn Sie eine Verbindung mit SSMS herstellen, verwenden Sie die Registerkarte "Verbindungseigenschaften ", um eine Datenbank anzugeben, die derzeit verfügbar ist. Sql Server Errorlog hat eine Fehlermeldung wie die folgende: Login failed for user <UserName>. Reason: Failed to open the explicitly specified database 'dbname'. [CLIENT: <ip address>] Hinweis: Wenn die Standarddatenbank der Anmeldung verfügbar ist, ermöglicht SQL Server die Erfolgreiche Verbindung. Weitere Informationen finden Sie unter MSSQLSERVER_4064. |
Der Benutzer verfügt nicht über Berechtigungen für die angeforderte Datenbank. | – Versuchen Sie, eine Verbindung mit einem anderen Benutzer herzustellen, der über sysadmin-Rechte verfügt, um festzustellen, ob die Verbindung hergestellt werden kann. - Gewähren des Anmeldezugriffs auf die Datenbank durch Erstellen des entsprechenden Benutzers (z. B CREATE USER [<UserName>] FOR LOGIN [UserName] . ) |
Überprüfen Sie auch die umfangreiche Liste der Fehlercodes bei der Problembehandlung bei Fehler 18456.
Weitere Hilfe zur Problembehandlung finden Sie unter "Problembehandlung bei SQL Client/Server Connectivity Issues".
Fehler bei der Anmeldung für BENUTZER NT AUTHORITY\ANONYMOUS LOGON
Für dieses Problem gibt es mindestens vier Szenarien. Untersuchen Sie in der folgenden Tabelle jede anwendbare potenzielle Ursache, und verwenden Sie die entsprechende Auflösung: Eine Erläuterung des Begriffs "Double Hop" finden Sie in der Tabelle unten in der Tabelle.
Mögliche Ursachen | Vorgeschlagene Entschließungen |
---|---|
Sie versuchen, NT LAN Manager-Anmeldeinformationen (NTLM) von einem Dienst an einen anderen Dienst auf demselben Computer zu übergeben (z. B. von IIS an SQL Server), aber ein Fehler tritt im Prozess auf. | Fügen Sie die Registrierungseinträge DisableLoopbackCheck oder BackConnectionHostNames hinzu. |
Es gibt Szenarien mit Doppelhüpfen (Einschränkungsdelegierung) auf mehreren Computern. Der Fehler kann auftreten, wenn die Kerberos-Verbindung aufgrund von Problemen mit Dienstprinzipalnamen (Service Principal Names, SPN) fehlschlägt. | Führen Sie SQLCheck für jeden SQL Server und den Webserver aus. Verwenden Sie die Anleitungen zur Problembehandlung: 0600 Credential Delegation Issue and 0650 SQL Server Linked Server Delegation Issues. |
Wenn kein Double-Hop (Einschränkungsdelegierung) beteiligt ist, sind wahrscheinlich doppelte SPNs vorhanden, und der Client wird als LocalSystem oder ein anderes Computerkonto ausgeführt, das NTLM-Anmeldeinformationen anstelle von Kerberos-Anmeldeinformationen abruft. | Verwenden Sie SQLCheck oder Setspn.exe , um SPN-bezogene Probleme zu diagnostizieren und zu beheben. Lesen Sie auch die Übersicht über den Kerberos Configuration Manager für SQL Server. |
Möglicherweise wurde die Richtlinie für die lokale Windows-Sicherheit konfiguriert, um die Verwendung des Computerkontos für Remoteauthentifizierungsanforderungen zu verhindern. | Navigieren Sie zu lokalen Sicherheitsrichtlinien: Netzwerksicherheit für lokale Sicherheitsrichtlinien>>>: Lokales System die Verwendung der Computeridentität für NTLM zulassen, wählen Sie die Option "Aktiviert" aus, wenn die Einstellung deaktiviert ist, und wählen Sie dann "OK" aus. Hinweis: Wie auf der Registerkarte "Erläutern " beschrieben, ist diese Richtlinie standardmäßig in Windows 7 und höheren Versionen aktiviert. |
Zeitweiliges Auftreten dieses Problems bei Verwendung einer eingeschränkten Delegierung kann darauf hindeuten, dass ein abgelaufenes Ticket vorhanden ist, das nicht durch die mittlere Ebene verlängert werden kann. Dies ist ein erwartetes Verhalten bei einem verknüpften Serverszenario oder einer beliebigen Anwendung, die eine Anmeldesitzung für mehr als 10 Stunden hält. | Ändern Sie die Delegierungseinstellungen auf Dem Server der mittleren Ebene von "Diesem Computer vertrauen" für die Delegierung an bestimmte Dienste nur : Verwenden Sie Kerberos nur , um diesem Computer für die Delegierung an bestimmte Dienste zu vertrauen – Verwenden Sie ein beliebiges Protokoll. Weitere Informationen finden Sie unter intermittierende ANONYME ANMELDUNG des verknüpften SQL Server-Doppelsprungs. |
NTLM-Peeranmeldung | Dieser Fehler bezieht sich auf das NTLM-Authentifizierungsprotokoll, das von Microsoft Windows OS verwendet wird. Bei der Kommunikation zwischen Computern, die sich entweder in Arbeitsstationen oder in Domänen befinden, die einander nicht vertrauen, können Sie identische Konten auf beiden Computern einrichten und NTLM-Peerauthentifizierung NTLM-Peeranmeldung verwenden. Anmeldungen funktionieren nur, wenn sowohl das Benutzerkonto als auch das Kennwort auf beiden Computern übereinstimmen. |
Loopbackschutz | Der Loopbackschutz wurde entwickelt, um zu verhindern, dass Anwendungen andere Dienste auf demselben Computer aufrufen. Sie können entweder die DisableLoopbackCheck Registrierungsschlüssel oder BackConnectionHostNames (bevorzugt) so festlegen, dass dies zulässig ist. Weitere Informationen finden Sie in der Fehlermeldung, wenn Sie versuchen, lokal mithilfe des FQDN oder des CNAME-Alias auf einen Server zuzugreifen, nachdem Sie Windows Server 2003 Service Pack 1 installiert haben: Zugriff verweigert oder kein Netzwerkanbieter hat den angegebenen Netzwerkpfad akzeptiert. |
Always-On-Listener-Loopbackschutz | Beim Herstellen einer Verbindung mit dem Always-On-Listener vom primären Knoten wird die Verbindung NTLM sein. Dadurch wird die Loopbacküberprüfung aktiviert und ein Fehler "Anmeldung fehlgeschlagen" angezeigt, der besagt, dass der Benutzer aus einer nicht vertrauenswürdigen Domäne stammt. Um diesen Fehler zu beheben, geben Sie den Listener NETBIOS-Namen und vollqualifizierten Namen in den BackConnectionHostNames Registrierungsschlüssel auf allen Computern in der Verfügbarkeitsgruppe ein. Weitere Informationen finden Sie in der Fehlermeldung, wenn Sie versuchen, lokal mithilfe des FQDN oder des CNAME-Alias auf einen Server zuzugreifen, nachdem Sie Windows Server 2003 Service Pack 1 installiert haben: Zugriff verweigert oder kein Netzwerkanbieter hat den angegebenen Netzwerkpfad akzeptiert. |
LANMAN-Kompatibilitätsstufe | Dies geschieht in der Regel zwischen älteren Computern (vor Windows 2008) und neueren Computern. Legen Sie die LANMAN-Kompatibilitätsebene auf 5 auf allen Computern fest. Dies verbietet auch NTLM v1. Sie können auch zu Kerberos wechseln, um dieses Problem zu vermeiden. |
Vertrauliches Konto | Einige Konten werden möglicherweise in Active Directory als vertraulich markiert. Diese Konten können in einem Double-Hop-Szenario nicht an einen anderen Dienst delegiert werden. |
Kein eingeschränktes Ziel | Wenn die eingeschränkte Delegierung für ein bestimmtes Dienstkonto aktiviert ist, schlägt Kerberos fehl, wenn der SPN des Zielservers nicht in der Liste der Ziele der eingeschränkten Delegierung enthalten ist. |
Dienstspezifische SID | Dieses Feature beschränkt lokale Verbindungen auf die Verwendung von NTLM und nicht kerberos als Authentifizierungsmethode. Der Dienst kann einen einzelnen Hop mit NTLM-Anmeldeinformationen zu einem anderen Server machen, kann aber nicht weiter delegiert werden, ohne die eingeschränkte Delegierung zu verwenden. |
NTLM und eingeschränkte Delegierung | Wenn es sich bei dem Ziel um eine Dateifreigabe handelt, muss der Delegierungstyp des Dienstkontos auf der mittleren Ebene eingeschränkt und nicht eingeschränkt-Kerberos sein. |
Hinweis
Ein Double-Hop umfasst in der Regel die Delegierung von Benutzeranmeldeinformationen auf mehreren Remotecomputern. Angenommen, Sie haben eine SQL Server-Instanz namens SQL1 , in der Sie einen verknüpften Server für einen Remote-SQL Server mit dem Namen SQL2 erstellt haben. In der Konfiguration der Serversicherheit mit verknüpftem Server haben Sie die Option "Mit dem aktuellen Sicherheitskontext der Anmeldung vorgenommen" ausgewählt. Wenn Sie mit dieser Konfiguration eine verknüpfte Serverabfrage auf SQL1 von einem Remoteclientcomputer mit dem Namen Client1 ausführen, müssen die Windows-Anmeldeinformationen zuerst von Client1 zu SQL1 und dann von SQL1 zu SQL2 wechseln (daher wird er als Double-Hop bezeichnet). Weitere Informationen finden Sie unter Understanding Kerberos Double Hop and Kerberos Constrained Delegation Overview
Fehler bei der Anmeldung für den Benutzer (leer)
Dieser Fehler tritt auf, wenn ein Benutzer versucht, sich nicht anzumelden. Dieser Fehler kann auftreten, wenn Ihr Computer nicht mit dem Netzwerk verbunden ist. Sie können beispielsweise eine Fehlermeldung erhalten, die dem folgenden ähnelt:
Source: NETLOGON
Date: 8/12/2012 8:22:16 PM
Event ID: 5719
Task Category: None
Level: Error
Keywords: Classic
User: N/A
Computer: <computer name>
Description: This computer was not able to set up a secure session with a domain controller in domain due to the following: The remote procedure call was cancelled.
This may lead to authentication problems. Make sure that this computer is connected to the network. If the problem persists, please contact your domain administrator.
Eine leere Zeichenfolge bedeutet, dass SQL Server versucht hat, die Anmeldeinformationen an den Subsystemdienst für lokale Sicherheitsstellen (Local Security Authority Subsystem Service, LSASS) zu übergeben, aber aufgrund eines Problems nicht möglich. Entweder war LSASS nicht verfügbar, oder der Domänencontroller konnte nicht kontaktiert werden.
Möglicherweise werden auch die folgenden entsprechenden SSPI-Fehlercodes angezeigt:
Fehler beim SSPI-Handshake mit Fehlercode 0x80090311 beim Herstellen einer Verbindung mit integrierter Sicherheit; die Verbindung wurde geschlossen.
Fehler beim SSPI-Handshake mit Fehlercode 0x80090304 beim Herstellen einer Verbindung mit integrierter Sicherheit; die Verbindung wurde geschlossen.
Diese Fehlercodes werden wie folgt übersetzt:
Fehler -2146893039 (0x80090311): Es konnte keine Autorität zur Authentifizierung kontaktiert werden. Fehler -2146893052 (0x80090304): Die lokale Sicherheitsbehörde kann nicht kontaktiert werden.
Um diese Fehler zu beheben, können Sie den fehlerhaften DC offline schalten oder NLTEST.EXE verwenden, um DCs zu wechseln.
- Führen Sie den NLTEST /SC_QUERY:CONTOSO
Befehl aus, um den DC abzufragen.
- Führen Sie den NLTEST /SC_RESET:CONTOSO\DC03
Befehl aus, um den DC-Befehl zu ändern.
Wenn Sie weitere Hilfe benötigen, wenden Sie sich an das Microsoft Active Directory-Team.
Überprüfen Sie die Ereignisprotokolle auf dem Client und auf den Server auf netzwerkbezogene oder Active Directory-bezogene Nachrichten, die um den Zeitpunkt des Fehlers protokolliert wurden. Wenn Sie einen Fall finden, arbeiten Sie mit Ihrem Domänenadministrator zusammen, um die Probleme zu beheben.
Anmelden für Benutzer '(null)' fehlgeschlagen
Ein Hinweis auf "null" könnte bedeuten, dass LSASS das Sicherheitstoken nicht mithilfe der SQL Server-Dienstkontoanmeldeinformationen entschlüsseln kann. Der Hauptgrund für diese Bedingung ist, dass der SPN mit dem falschen Konto verknüpft ist.
Führen Sie diese Schritte aus, um das Problem zu beheben:
Verwenden Sie sqlCheck oder Setspn.exe, um SPN-bezogene Probleme zu diagnostizieren und zu beheben.
Verwenden Sie SQLCheck , um zu überprüfen, ob das SQL Service-Konto für die Delegierung vertrauenswürdig ist. Wenn die Ausgabe angibt, dass das Konto für die Delegierung nicht vertrauenswürdig ist, arbeiten Sie mit Ihrem Active Directory-Administrator zusammen, um die Delegierung für das Konto zu aktivieren.
Hinweis
Die SETSPN -X
und -Q
sind nützliche Befehle, um nach doppelten oder falsch eingefügten SPNs zu suchen.
Diagnostizieren und Beheben von DNS-Namensauflösungsproblemen (Domain Name System). Zum Beispiel:
Ping-IP-Adresse mithilfe von PowerShell-Skripts:
ping -a <your_target_machine>
(Verwendung-4
speziell für IPv4 und-6
IPv6)ping -a <your_remote_IPAddress>
Verwenden Sie NSLookup , um Ihren lokalen und Remotecomputernamen und die IP-Adresse mehrmals einzugeben.
Suchen Sie nach Abweichungen und Nichtübereinstimmungen in den zurückgegebenen Ergebnissen. Die Genauigkeit der DNS-Konfiguration im Netzwerk ist für eine erfolgreiche SQL Server-Verbindung wichtig. Ein falscher DNS-Eintrag könnte später zahlreiche Konnektivitätsprobleme verursachen.
Stellen Sie sicher, dass Firewalls oder andere Netzwerkgeräte keinen Client daran hindern, eine Verbindung mit dem Domänencontroller herzustellen. SPNs werden in Active Directory gespeichert. Wenn die Clients nicht mit dem Verzeichnis kommunizieren können, kann die Verbindung nicht erfolgreich hergestellt werden.
Zusätzliche Fehlerinformationen
Zur Verbesserung der Sicherheit bleibt die Art des Authentifizierungsfehlers in der an den Client zurückgegebenen Fehlermeldung absichtlich verborgen. Im SQL Server-Fehlerprotokoll enthält ein entsprechender Fehler jedoch einen Fehlerstatus, der einer Authentifizierungsfehlerbedingung zugeordnet ist. Vergleichen Sie den Fehlerzustand mit der folgenden Liste, um den Grund für den Anmeldefehler zu bestimmen.
State | Beschreibung |
---|---|
1 | Fehlerinformationen sind nicht verfügbar. Dieser Zustand bedeutet in der Regel, dass Sie nicht über die Berechtigung zum Empfangen der Fehlerdetails verfügen. Weitere Informationen erhalten Sie von Ihrem SQL Server-Administrator. |
2 | Die Benutzer-ID ist ungültig. |
5 | Die Benutzer-ID ist ungültig. |
6 | Es wurde der Versuch unternommen, einen Windows-Anmeldenamen für die SQL Server-Authentifizierung zu verwenden. |
7 | Der Anmeldename ist deaktiviert, und das Kennwort ist falsch. |
8 | Das Kennwort ist falsch. |
9 | Das Kennwort ist ungültig. |
11 | Der Anmeldename ist gültig, beim Serverzugriff ist jedoch ein Fehler aufgetreten. Eine mögliche Ursache für diesen Fehler ist, wenn der Windows-Benutzer Zugriff auf SQL Server als Mitglied der gruppe lokaler Administratoren hat, windows jedoch keine Administratoranmeldeinformationen bereitstellt. Um eine Verbindung herzustellen, starten Sie das Verbindungsprogramm mit der Option "Als Administrator ausführen", und fügen Sie dann den Windows-Benutzer als spezifische Anmeldung zu SQL Server hinzu. |
12 | Der Anmeldename ist gültig, beim Serverzugriff ist jedoch ein Fehler aufgetreten. |
18 | Das Kennwort muss geändert werden. |
38, 46 | Die vom Benutzer angeforderte Datenbank konnte nicht gefunden werden. |
58 | Wenn SQL Server nur zur Verwendung der Windows Authentifizierung konfiguriert ist und ein Client versucht, sich mit SQL-Authentifizierung anzumelden. Eine weitere Ursache ist, wenn SIDs nicht übereinstimmen. |
102 – 111 | Azure AD-Fehler. |
122 – 124 | Fehler: Der Benutzername oder das Kennwort ist leer. |
126 | Die vom Benutzer angeforderte Datenbank ist nicht vorhanden. |
132 – 133 | Azure AD-Fehler. |
Andere Fehlerzustände liegen vor und weisen auf einen unerwarteten internen Verarbeitungsfehler hin.
Seltenere mögliche Ursache
Fehler beim Versuch, sich mithilfe der SQL-Authentifizierung anzumelden. Der Server ist nur für Windows-Authentifizierung konfiguriert. Kann in den folgenden Situationen zurückgegeben werden.
Wenn der Server für die Authentifizierung im gemischten Modus konfiguriert ist und eine ODBC-Verbindung das TCP-Protokoll verwendet, und die Verbindung gibt nicht explizit an, dass die Verbindung eine vertrauenswürdige Verbindung verwenden soll.
Wenn SQL Server für die Authentifizierung im gemischten Modus konfiguriert ist und eine ODBC-Verbindung benannte Rohre verwendet, und die Anmeldeinformationen, die der Client zum Öffnen der benannten Pipe verwendet hat, werden verwendet, um den Benutzer automatisch zu imitieren, und die Verbindungszeichenfolge gibt nicht explizit die Verwendung einer vertrauenswürdigen Authentifizierung an.
Um dieses Problem zu beheben, schließen Sie TRUSTED_CONNECTION = TRUE
in die Verbindungszeichenfolge ein.
Beispiele
In diesem Beispiel ist der Fehlerzustand des Authentifizierungsfehlers 8. Dies zeigt an, dass das Kennwort falsch ist.
Datum | Quelle | `Message` |
---|---|---|
2007-12-05 20:12:56.34 | Anmelden | Fehler: 18456, Schweregrad: 14, Status: 8. |
2007-12-05 20:12:56.34 | Anmelden | Fehler bei der Anmeldung für den Benutzer "<user_name>". [CLIENT: <IP-Adresse>] |
Hinweis
Wenn SQL Server im Windows-Authentifizierungsmodus installiert und später in den SQL Server- und Windows-Authentifizierungsmodus geändert wird, wird die SA-Anmeldung anfänglich deaktiviert. Dies führt zu dem Fehler "Status 7": "Fehler bei der Anmeldung für benutzer 'sa'." Informationen zum Aktivieren der sa-Anmeldung finden Sie unter Ändern des Serverauthentifizierungsmodus.