web-dev-qa-db-fra.com

Login a échoué pour l'erreur utilisateur: 18456 State: 10

Dans l'une de mes applications VB.net, je reçois l'erreur Login failed for user 'user'. Mais l'utilisateur a une autorisation complète (Sysadmin). De plus, cette erreur arrive par intermittence.

Le journal des erreurs est ce qui suit:

La connexion a échoué pour l'utilisateur 'User'. Raison: Impossible d'ouvrir la base de données explicitement spécifiée. [Client: 192.168.1.69]
Erreur: 18456, Gravité: 14, Etat: 38.
Login a échoué pour l'utilisateur 'User'. Raison: la validation du mot de passe a échoué avec une erreur d'infrastructure. Vérifiez les erreurs précédentes. [Client: 192.168.1.61]
Erreur: 18456, Gravité: 14, État: 10.
Login a échoué pour l'utilisateur 'User'. Raison: la validation du mot de passe a échoué avec une erreur d'infrastructure. Vérifiez les erreurs précédentes. [Client: 192.168.1.88]
Erreur: 18456, Gravité: 14, État: 10.

J'ai vu cet article .

Mais dans mon cas, toutes les bases de données sont définies sur Autoclose OFF.

L'utilisateur existe également et a la permission de Sysadmin.

Aussi KB # 925744 Pour SQL Server 2005, comme indiqué dans l'article. Mais j'utilise SQL Server 2008 R2.

mettre à jour:

Je viens de voir cela article . En cela, il y avait une requête pour trouver la bague tampon.in mon cas, j'ai reçu 0x139f comme code d'erreur. Quand je suis exécuté net helpmsg 5023, j'ai eu la suite.

The group or resource is not in the correct state to perform the requested operation.

Qu'est-ce que ça veut dire? Que ce soit la raison de l'erreur?

3
IT researcher

L'erreur d'état 38 est probablement un hareng rouge: concentrez-vous sur les erreurs de l'état 10.

Tandis que KB article n ° 925744 dit qu'il s'agit pour SQL Server 2005, c'est tout simplement à cause de la date à laquelle il a été écrit. Le symptôme qu'il cause affecterait toutes les versions du serveur SQL qui ont été publiées depuis une manière similaire ou identique.

Maintenant, si user est une connexion Windows, vous êtes peut-être en quelque sorte essayer d'authentifier en tant que connexion Windows sans spécifier le domaine, ni peut-être que vous spécifiez le domaine, mais le contrôleur de domaine n'est pas fiable ou sur une connexion réseau peu fiable. Vous devriez publier votre chaîne de connexion actuelle dans la question (foulez nos vrais noms/mots de passe bien sûr).

Vous devez également envisager de créer une nouvelle connexion séparée avec les mêmes autorisations et de voir si vous obtenez intermittiquement la même erreur avec cet autre utilisateur également - je suppose que c'est un problème architectural d'une manière par opposition à un problème avec juste cet utilisateur .

Une autre possibilité est que votre application .NET utilise Windows Auth et que le mot de passe sous-jacent a été modifié. On dirait qu'un coup long, mais consultez l'article et il y a un correctif disponible: Article KB # 254585 .

2
Aaron Bertrand