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 les deux (Windows et SQL)
Mais la connexion à SQL Server échoue avec le message suivant (pour User123)
Remarque: avoir vérifié à plusieurs reprises que le nom d'utilisateur / mot de passe est correctement saisi
Détails de l'erreur:
La connexion a échoué 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 à ce sujet s'il vous plaît.
sql-server
sql-server-2008
Sreedhar
la source
la source
Réponses:
Par défaut, le message d'erreur d'échec de connexion n'est rien d'autre qu'une connexion d'utilisateur client a été refusée par le serveur en raison d'une non-concordance des informations de connexion. La première tâche que vous pouvez vérifier est de voir si cet utilisateur dispose des privilèges appropriés sur cette instance SQL Server et sur la base de données pertinente également, c'est bien. É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 cette connexion utilisateur.
Bien que si cet utilisateur dispose des autorisations appropriées sur la base de données et le serveur si le serveur rencontre des problèmes d'informations d'identification pour cette connexion, il l'empêchera de redonner l'authentification à SQL Server, le client recevra le message d'erreur suivant:
Ok maintenant quoi, 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 «État» comme 1 quelle que soit la nature des problèmes d'authentification de la connexion. Par conséquent, pour approfondir votre recherche, 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 comme:
Comme défini ci-dessus, les colonnes Gravité et État de l'erreur sont essentielles pour trouver le reflet précis de la source du problème. Sur l'erreur ci-dessus, le numéro 8 pour l'état indique un échec d'authentification en raison d'une incompatibilité de mot 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 de l'Agent SQL Server.
Sung Lee, Program Manager in SQL Server Protocols (Dev.team) a donné plus d'informations sur la description de l'état d'erreur: Les états d'erreur courants et leurs descriptions sont fournis dans le tableau suivant:
Vous pouvez voir qu'aucune gravité ou niveau d'état n'est défini à partir du journal des erreurs de cette instance 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 le
idée, regardez dans le journal des événements pour des événements intéressants].
la source
Vous devez activer l'authentification SQL Server:
la source
J'ai eu le même problème, mais le mien était parce que je n'avais pas réglé 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 en
la source
Vous pouvez y accéder en
Juste pour tous ceux qui lisent ceci: cela a également fonctionné pour moi sur 2012 SQL Server. Merci
la source
La solution correcte au problème consiste à vous assurer que l'authentification du serveur SQL est activée pour votre serveur SQL.
la source
Après avoir activé le «Mode d'authentification SQL Server et Windows», accédez à ce qui suit.
Enfin, redémarrez le serveur SQL.
la source