J'ai créé un compte de connexion sur mon serveur localhost\sql2008 (par exemple, Utilisateur123).
Mappé à la base de données (par défaut)
Le mode d'authentification sur le serveur SQL est défini sur les deux (Windows et SQL).
Mais la connexion au serveur SQL échoue avec le message suivant (pour User123)
Note : J'ai vérifié à plusieurs reprises que le nom d'utilisateur et le mot de passe sont correctement saisis.
Détails de l'erreur :
Echec de la connexion pour l'utilisateur 'User123' ; (Net.SqlClient Data Provider)
Nom du serveur : localhost\sql2008 Erreur Numéro : 18456 Severity : 14 State : 1 Numéro de ligne : 65536
Si vous avez besoin d'aide, je vous en prie.
Vous devez activer l'authentification du serveur SQL :
!Dialogue des propriétés du SGBD][1]
![Dialogue d'authentification du serveur SQL][2]
[1] : http://i.stack.imgur.com/RIXRF.png [2] : http://i.stack.imgur.com/8e7in.jpg
Par défaut, le message d'erreur "login failed" n'est rien d'autre qu'un utilisateur client dont la connexion a été refusée par le serveur en raison d'une mauvaise correspondance des informations d'identification. La première chose à faire est de vérifier si cet utilisateur dispose des privilèges nécessaires sur cette instance de SQL Server et sur la base de données correspondante, ce qui est une bonne chose. Évidemment, si les privilèges nécessaires n'ont pas été définis, vous devez résoudre ce problème en accordant les privilèges appropriés pour la connexion de cet utilisateur.
Même si cet utilisateur dispose des privilèges appropriés sur la base de données et le serveur, si le serveur rencontre des problèmes d'authentification pour cette connexion, il ne pourra pas accorder l'authentification au serveur SQL, le client recevra le message d'erreur suivant :
Msg 18456, Level 14, State 1, Server <ServerName>, Line 1
Login failed for user '<Name>'
En regardant le message d'erreur, vous avez l'impression qu'il n'est pas assez explicite pour comprendre l'état du niveau &. Par défaut, l'erreur du système d'exploitation indique que l'état est 1, quelle que soit la nature des problèmes d'authentification de la connexion. Pour aller plus loin, vous devez donc consulter le journal des erreurs de l'instance SQL Server concernée pour obtenir plus d'informations sur la gravité et l'état de cette erreur. Vous pouvez rechercher 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 de l'erreur sont essentielles pour trouver la réflexion précise de la source du problème. Dans l'erreur ci-dessus, le numéro 8 pour l'état indique un échec d'authentification dû à une incompatibilité de mot de passe. Les livres en ligne font référence : Par défaut, les messages définis par l'utilisateur d'une gravité inférieure à 19 ne sont pas envoyés au journal des applications Microsoft Windows lorsqu'ils se produisent. Les messages définis par l'utilisateur d'une gravité inférieure à 19 ne déclenchent donc pas d'alertes de l'agent SQL Server.
Sung Lee, directeur de programme au sein de l'équipe Protocoles du serveur SQL (Dev.team), a fourni des informations supplémentaires sur la description des états d'erreur : les états d'erreur courants et leur description sont présentés 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'il n'y a pas de niveau de gravité ou d'état défini dans le journal des erreurs de cette instance de SQL Server. La prochaine option de dépannage consiste donc à consulter le journal de sécurité de l'observateur d'événements [modifier car la capture d'écran est manquante mais vous obtenez l'information suivante
l'idée, recherchez les événements intéressants dans le journal des événements].
J'ai eu le même problème, mais le mien était dû au fait que je n'avais pas réglé l'authentification du serveur sur "SQL Server and Windows Authentication mode" ; (ce que vous avez fait). Je voulais juste le mentionner ici au cas où quelqu'un l'aurait manqué dans votre question.
Vous pouvez y accéder par