Anmeldung bei SQL Server + SQL Server-Authentifizierung + Fehler: 18456 nicht möglich

121

Ich habe ein Anmeldekonto auf meinem localhost \ sql2008-Server erstellt (z. B. User123).

Der Datenbank zugeordnet (Standard)

Der Authentifizierungsmodus unter SQL Server ist auf beide eingestellt (Windows und SQL).

Die Anmeldung bei SQL Server schlägt jedoch mit der folgenden Meldung fehl (für Benutzer123).

Hinweis: Sie haben mehrmals überprüft, ob Benutzername / Passwort korrekt eingegeben wurden

Fehlerdetails:

Anmeldung für Benutzer 'User123' (Net.SqlClient Data Provider) fehlgeschlagen

Servername: localhost \ sql2008 Fehlernummer: 18456 Schweregrad: 14 Status: 1 Zeilennummer: 65536

Hilfe dazu bitte.

Sreedhar
quelle
1
Testen Sie sowohl den SQL- als auch den Windows-Authentifizierungszugriff über die SqlServer Management Console für den Benutzer und prüfen Sie, ob Sie mit dem oben genannten Konto darauf zugreifen können. Welchen Datenprovider und welche Verbindungszeichenfolge verwenden Sie?
Joe Pitz
1
Ich versuche mich in SSMS anzumelden und es wird der obige Fehler ausgegeben.
Sreedhar
1
Sie können sich als Administratorkonto anmelden?
Joe Pitz
Melden Sie sich als Administrator an und überprüfen Sie Ihr Ereignisprotokoll. Der Grund für den Fehler sollte dort aufgeführt sein. Schauen Sie unter den Verwaltungsordner
Joe Pitz
Alternative, die für mich funktionierte, war stackoverflow.com/questions/28090747/…
Mark Schultheiss

Antworten:

49

Standardmäßig ist die Fehlermeldung "Anmeldung fehlgeschlagen" nichts anderes als eine Client-Benutzerverbindung, die vom Server aufgrund nicht übereinstimmender Anmeldeinformationen abgelehnt wurde. Die erste Aufgabe, die Sie möglicherweise überprüfen, besteht darin, festzustellen, ob dieser Benutzer über relevante Berechtigungen für diese SQL Server-Instanz und auch für die relevante Datenbank verfügt. Das ist gut. Wenn die erforderlichen Berechtigungen nicht festgelegt wurden, müssen Sie dieses Problem natürlich beheben, indem Sie relevante Berechtigungen für die Benutzeranmeldung erteilen.

Wenn dieser Benutzer über relevante Berechtigungen für Datenbank und Server verfügt und der Server bei dieser Anmeldung auf Probleme mit Anmeldeinformationen stößt, wird beim Zurückgeben der Authentifizierung an SQL Server die folgende Fehlermeldung angezeigt:

Msg 18456, Level 14, State 1, Server <ServerName>, Line 1
Login failed for user '<Name>'

Ok, was nun, wenn Sie sich die Fehlermeldung ansehen, denken Sie, dass dies nicht beschreibend ist, um die Ebene und den Status zu verstehen. Standardmäßig zeigt der Betriebssystemfehler "Status" als 1 an, unabhängig von der Art der Probleme bei der Authentifizierung der Anmeldung. Um weitere Untersuchungen durchzuführen, müssen Sie sich auch das relevante Fehlerprotokoll der SQL Server-Instanz ansehen, um weitere Informationen zum Schweregrad und zum Status dieses Fehlers zu erhalten. Sie können einen entsprechenden Eintrag im Protokoll wie folgt anzeigen:

2007-05-17 00:12:00.34 Logon     Error: 18456, Severity: 14, State: 8.
or

2007-05-17 00:12:00.34 Logon     Login failed for user '<user name>'.

Wie oben definiert, sind die Spalten Schweregrad und Status des Fehlers der Schlüssel, um die genaue Reflexion für die Ursache des Problems zu finden. Bei der obigen Fehlernummer 8 für den Status wird ein Authentifizierungsfehler aufgrund einer Kennwortinkongruenz angezeigt. Online-Bücher beziehen sich auf: Standardmäßig werden benutzerdefinierte Nachrichten mit einem Schweregrad von weniger als 19 nicht an das Microsoft Windows-Anwendungsprotokoll gesendet, wenn sie auftreten. Benutzerdefinierte Nachrichten mit einem Schweregrad von weniger als 19 lösen daher keine SQL Server Agent-Warnungen aus.

Sung Lee, Programmmanager in SQL Server-Protokollen (Dev.team), hat weitere Informationen zur Beschreibung des Fehlerzustands aufgeführt: Die allgemeinen Fehlerzustände und ihre Beschreibungen finden Sie in der folgenden Tabelle:

ERROR STATE       ERROR DESCRIPTION
------------------------------------------------------------------------------
2 and 5           Invalid userid
6                 Attempt to use a Windows login name with SQL Authentication
7                 Login disabled and password mismatch
8                 Password mismatch
9                 Invalid password
11 and 12         Valid login but server access failure
13                SQL Server service paused
18                Change password required


Well I'm not finished yet, what would you do in case of error:

2007-05-17 00:12:00.34 Logon     Login failed for user '<user name>'.

Sie können sehen, dass im Fehlerprotokoll dieser SQL Server-Instanz kein Schweregrad oder Status definiert ist. Die nächste Option zur Fehlerbehebung besteht darin, das Sicherheitsprotokoll der Ereignisanzeige zu überprüfen [Bearbeiten, da ein Screenshot fehlt, Sie jedoch das erhalten

Idee, suchen Sie im Ereignisprotokoll nach interessanten Ereignissen].

Joe Pitz
quelle
1
Danke wird schauen und sehen, wie es geht
Sreedhar
1
toter Link bitte überarbeiten
Chris Hayes
10
Die überlegene Antwort unter dieser sollte gewählt werden, nicht diese.
void.pointer
4
Lesen Sie den Beitrag unten.
Levi Fuller
6
@ void.pointer Das OP hat bereits festgestellt, dass "Authentifizierungsmodus auf SQL Server auf beide (Windows und SQL) eingestellt ist". Der folgende Beitrag hat also keine Relevanz für diese Frage.
Manachi
336

Sie müssen die SQL Server-Authentifizierung aktivieren:

  1. Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf den Server und klicken Sie auf "Eigenschaften".

Dialogfeld "DBMS-Eigenschaften"

  1. Klicken Sie im Fenster "Servereigenschaften" in der Liste der Seiten links auf "Sicherheit". Wählen Sie unter "Serverauthentifizierung" die Radiooption "SQL Server- und Windows-Authentifizierungsmodus".

Dialogfeld "SQL Server-Authentifizierung"

  1. Starten Sie den SQLEXPRESS-Dienst neu.
PrateekSaluja
quelle
29
Oh, DANKE millionenfach. Hauptsächlich für das Wort "Neustart" oben!
Magnus Smith
4
Ich weiß, das ist alt, aber es hat meinen Arsch total gerettet. Danke Prateek. Bin dankbar. MÜSSEN neu starten!
Levi Fuller
3
Warum sollte dies funktionieren, wenn OP ausdrücklich angibt, dass "Authentifizierungsmodus auf SQL Server auf beide (Windows und SQL) eingestellt ist"?
Tim Schmelter
4
Diese Antwort ist redundant und für die Frage nicht nützlich. Das OP hat bereits festgestellt, dass "Authentifizierungsmodus auf SQL Server auf beide (Windows und SQL) eingestellt ist".
Manachi
1
Das war unglaublich .. !! Vielen Dank PrateekSaluja
Amin
44

Ich hatte das gleiche Problem, aber mein Problem war, dass ich die Serverauthentifizierung nicht auf "SQL Server- und Windows-Authentifizierungsmodus" eingestellt hatte (was Sie hatten). Ich wollte es hier nur erwähnen, falls jemand es in Ihrer Frage verpasst hat.

Sie können darauf zugreifen, indem Sie

  • Klicken Sie mit der rechten Maustaste auf die Instanz (IE SQLServer2008).
  • Wählen Sie "Eigenschaften"
  • Wählen Sie die Option "Sicherheit"
  • Ändern Sie "Serverauthentifizierung" in "SQL Server- und Windows-Authentifizierungsmodus".
  • Starten Sie den SQLServer-Dienst neu
    • Klicken Sie mit der rechten Maustaste auf die Instanz
    • Klicken Sie auf "Neustart"
Nathan Koop
quelle
6
Ich habe ungefähr zwei Stunden verbracht, weil ich nicht verstanden habe, dass ich den gesamten Server neu starten muss. Das ist einfach verrückt, dass für so etwas ein Neustart erforderlich ist. Microsoft hat keine Grenzen für die Crapware, die sie ausspucken.
Registrierter Benutzer
1
Dies ist auch eine wichtige Antwort dafür, warum keine Verbindung zur Amazon EC2-Instanz hergestellt werden kann, auf der der SQL Server installiert ist.
Teoman Shipahi
19

Sie können darauf zugreifen, indem Sie

Right click on instance (IE SQLServer2008)
Select "Properties"
Select "Security" option
Change "Server authentication" to "SQL Server and Windows Authentication mode"
Restart the SQLServer service
    Right click on instance
    Click "Restart"

Nur für alle anderen, die dies lesen: Dies funktionierte auch für mich auf 2012 SQL Server. Vielen Dank

Barry
quelle
1
Vielen Dank, das war perfekt, direkt auf den Punkt. Die akzeptierte Antwort ist mit guten Informationen gefüllt, aber das hat bei mir funktioniert.
Tony
4
Dies kann für OP nicht funktionieren, da er erwähnte, dass "der Authentifizierungsmodus unter SQL Server auf beide (Windows und SQL) eingestellt ist".
Tim Schmelter
1

Die richtige Lösung für das Problem besteht darin, sicherzustellen, dass die SQL Server-Authentifizierung für Ihren SQL Server aktiviert ist.

Deepesh Bajracharya
quelle
1

Navigieren Sie nach dem Aktivieren des "SQL Server- und Windows-Authentifizierungsmodus" zu den folgenden Schritten.

  1. Computerverwaltung (im Startmenü)
  2. Dienste und Anwendungen
  3. SQL Server-Konfigurationsmanager
  4. SQL Server-Netzwerkkonfiguration
  5. Protokolle für MSSQLSERVER
  6. Klicken Sie mit der rechten Maustaste auf TCP / IP und aktivieren Sie es.

Starten Sie schließlich den SQL Server neu.

Vasudev
quelle