Impossible de se connecter à SQL Server + authentification SQL Server + Erreur: 18456
J'ai créé un compte de connexion sur mon serveur localhost sql2008 (par exemple. User123)
Mappé à la base de données (par défaut)
Le Mode D'authentification sur SQL Server est défini à la fois (Windows et SQL)
Mais la connexion à SQL Server échoue avec le message suivant (pour User123)
Remarque: avoir vérifié plusieurs fois que le nom D'utilisateur / mot de passe est entré correctement
Détails De L'Erreur:
La connexion a échoué pour l'utilisateur 'User123' (Net.Fournisseur De Données SqlClient)
Nom du serveur: erreur localhost sql2008 Nombre: 18456 Gravité: 14 État: 1 Numéro De Ligne: 65536
Toute aide à ce sujet s'il vous plaît.
5 réponses
Par défaut, le message d'erreur Échec de la connexion n'est rien d'autre qu'une connexion utilisateur client a été refusée par le serveur en raison d'une inadéquation des informations d'identification de connexion. La première tâche que vous pouvez vérifier est de voir si cet utilisateur a des privilèges pertinents sur cette instance SQL Server et la base de données pertinente aussi, c'est bien. Évidemment, si les prvileges nécessaires ne sont pas définis, vous devez résoudre ce problème en accordant des privilèges pertinents pour la connexion de cet utilisateur.
Bien que si cet utilisateur a des subventions pertinentes sur base de données et serveur si le serveur rencontre des problèmes d'identification pour cette connexion, il empêchera l'octroi de L'authentification à SQL Server, le client recevra le message d'erreur suivant:
Msg 18456, Level 14, State 1, Server <ServerName>, Line 1
Login failed for user '<Name>'
Ok maintenant, en regardant le message d'erreur, vous sentez que c'est non descriptif pour comprendre le niveau et l'état. Par défaut, l'erreur du système d'exploitation affichera 'State' comme 1 quelle que soit la nature des problèmes lors de l'authentification de la connexion. Donc pour enquêter plus loin vous devez regardez également le journal des erreurs d'instance SQL Server pertinent pour plus d'informations sur la gravité et l'état de cette erreur. Vous devriez regarder dans une entrée correspondante dans le journal comme:
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>'.
Comme défini ci-dessus, les colonnes Severity & State sur l'erreur sont essentielles pour trouver la réflexion précise de la source du problème. Sur le numéro d'erreur ci-dessus 8 pour l'état indique l'échec d'authentification en raison de l'incompatibilité de mot de passe. Livres en ligne se réfère: par défaut, les messages définis par l'utilisateur de gravité inférieure à 19 ne sont pas envoyé au Journal de l'application Microsoft Windows quand ils se produisent. Les messages définis par l'utilisateur d'une gravité inférieure à 19 ne déclenchent donc pas D'alertes SQL Server Agent.
Sung Lee, Gestionnaire de programme dans les protocoles SQL Server (Dev.description: les États d'erreur courants et leurs descriptions sont fournis dans le tableau suivant:
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>'.
Vous pouvez voir qu'aucun niveau de gravité ou d'état n'est défini à partir du journal des erreurs de cette instance SQL Server. Donc, l'option de dépannage suivante consiste à regarder le journal de sécurité de L'Observateur D'événements [modifier parce que la capture d'écran est manquante, mais vous obtenez le
Idée, regardez dans le journal des événements pour les événements intéressants].
Vous devez activer L'authentification SQL Server:
- dans L'Explorateur D'objets, faites un clic droit sur le serveur et cliquez sur "Propriétés"
- dans la fenêtre" Propriétés du serveur", cliquez sur "Sécurité" dans la liste des pages à gauche. Sous "authentification du serveur", choisissez l'option radio "SQL Server et Windows Authentication mode".
- Redémarrez le service SQLEXPRESS.
J'ai eu ce même problème, mais le mien était parce que je n'avais pas défini L'authentification du serveur sur "SQL Server et Windows Authentication mode" (que vous aviez) je voulais juste le mentionner ici au cas où quelqu'un l'aurait manqué dans votre question.
Vous pouvez y accéder par
- Faites un clic droit sur l'instance (IE SQLServer2008)
- Sélectionnez "Propriétés"
- Sélectionnez l'option "Sécurité"
- remplacez " authentification du serveur "par" authentification SQL Server et Windows le mode"
- redémarrez le service SQLServer
- Faites un clic droit sur l'instance
- Cliquez Sur "Redémarrer"
Vous pouvez y accéder par
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"
Juste pour quelqu'un d'autre lisant ceci: cela a fonctionné pour moi sur 2012 SQL Server aussi. Merci
La bonne solution au problème consiste à vous assurer que L'authentification SQL server est activée pour votre serveur SQL.