web-dev-qa-db-fra.com

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 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.

118
Sreedhar

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].

47
Joe Pitz

Vous devez activer l'authentification SQL Server:

  1. Dans l'explorateur d'objets, faites un clic droit sur le serveur et cliquez sur "Propriétés"

DBMS Properties dialog

  1. 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 "Mode d’authentification SQL Server et Windows".

SQL Server Authentication dialog

  1. Redémarrez le service SQLEXPRESS.
325
PrateekSaluja

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

  • Clic droit sur l'instance (IE SQLServer2008)
  • Sélectionnez "Propriétés"
  • Sélectionnez l'option "Sécurité"
  • Remplacez "Authentification du serveur" par "Mode d'authentification SQL Server et Windows".
  • Redémarrez le service SQLServer
    • Clic droit sur l'instance
    • Cliquez sur "Redémarrer"
42
Nathan Koop

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

18
Barry

La solution correcte au problème consiste à vous assurer que l'authentification SQL Server est activée pour votre serveur SQL.

0