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 sur à la fois (Windows et SQL)
Mais la connexion à SQL Server échoue avec le message suivant (pour User123)
Remarque: avoir vérifié plusieurs fois que nom d'utilisateur/mot de passe est correctement saisi
Détails de l'erreur:
Échec de la connexion pour l'utilisateur 'User123' (fournisseur de données Net.SqlClient)
Nom du serveur: localhost\sql2008 Numéro d'erreur: 18456 Gravité: 14 État: 1 Numéro de ligne: 65536
toute aide sur ceci s'il vous plaît.
Par défaut, le message d'erreur "Échec de la connexion" a échoué, mais une connexion utilisateur client a été refusée par le serveur en raison d'une incompatibilité des informations d'identification de connexion. La première tâche à vérifier consiste à vérifier si cet utilisateur dispose des privilèges appropriés sur cette instance SQL Server et la base de données pertinente également, ce qui est une bonne chose. Évidemment, si les privilèges nécessaires ne sont pas définis, vous devez résoudre ce problème en accordant les privilèges appropriés pour cet identifiant.
Bien que, si cet utilisateur dispose d'autorisations pertinentes sur la base de données et le serveur, si le serveur rencontre des problèmes d'authentification pour cette connexion, il ne sera pas possible de redonner 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 quoi, en regardant le message d'erreur que vous ressentez comme ceci est non-descriptif pour comprendre le niveau et l'état. Par défaut, l’erreur du système d’exploitation indique 1 comme État, quelle que soit la nature des problèmes rencontrés lors de l’authentification du nom de connexion. Pour approfondir vos recherches, vous devez également consulter le journal des erreurs d'instance SQL Server pertinent pour plus d'informations sur la gravité et l'état de cette erreur. Vous pouvez rechercher une entrée correspondante dans le journal sous la forme:
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 Gravité et État de l'erreur sont essentielles pour trouver le reflet exact de la source du problème. Sur l'erreur ci-dessus, le numéro 8 indique que l'état indique un échec de l'authentification en raison d'une incompatibilité des mots de passe. La documentation en ligne fait référence: Par défaut, les messages définis par l'utilisateur dont la gravité est 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 dont la gravité est inférieure à 19 ne déclenchent donc pas d'alertes SQL Server Agent.
Sung Lee, responsable de programme dans les protocoles SQL Server (Dev.team) a présenté des informations complémentaires sur la description de l'état d'erreur: 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 constater qu’aucun niveau de gravité ou d’état n’est défini à partir du journal des erreurs de cette instance SQL Server. L’option de dépannage suivante 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 le
idée, regardez dans le journal des événements pour les événements intéressants].
Vous devez activer l'authentification SQL Server:
J'avais ce même problème, mais le mien l'était parce que je n'avais pas défini l'authentification du serveur sur "Mode d'authentification SQL Server et Windows" (que vous aviez). Je voulais simplement le mentionner ici au cas où quelqu'un l'aurait manqué dans votre question.
Vous pouvez y accéder par
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"
Pour ceux qui liront ceci: Cela a également fonctionné pour moi sur SQL Server 2012. Merci
La solution correcte au problème consiste à vous assurer que l'authentification SQL Server est activée pour votre serveur SQL.