web-dev-qa-db-fra.com

SqlServer: la connexion a échoué pour l'utilisateur

J'ai écrit un programme de test de connexion jdbc très simple. Et après toutes sortes de problèmes, j'ai presque réussi à le faire fonctionner. Presque, je n'arrive pas à surmonter le problème "SQLServerException: La connexion a échoué pour l'utilisateur xxxxx".

J'ai créé une base de données simple PersonInfo puis j'ai créé l'utilisateur utilisateur1 mot de passe1 (authentification SQL). Et après avoir essayé tout était incapable de se connecter à la base de données.

J'utilise SqlServer2008 sur Win 7, j'ai le dernier pilote jdbc de Microsoft. 

Mon code est:

import Java.sql.*;

public class hell {
public static void main(String[] args) {

    try {
        Class.forName("com.Microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
Connection conn=  DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=PersonInfo;user=Sohaib;password=0000;");


System.out.println("connected");
       }

    } catch (Exception e) {
        e.printStackTrace();
    }
}
}

Voici l'exception 

Exception: Unable to get connect
com.Microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'Sohaib'.
and all other supporting errors..

Malheureusement, je suis maintenant mort dans l'eau jusqu'à ce qu'un type de gourou SqlServer ou Jdbc Guru prenne pitié de moi et m'aide.

merci d'avance.

22
sohaib

Votre serveur SQL est-il en «authentification en mode mixte»? Cela est nécessaire pour vous connecter avec un compte serveur SQL au lieu d'un compte Windows.

Vous pouvez vérifier cela en vérifiant les propriétés du serveur, puis SECURITY, il devrait être en 'Mode d'authentification SQL Server et Windows'

Ce problème se produit si l'utilisateur tente de se connecter avec des informations d'identification impossibles à valider. Ce problème peut se produire dans les scénarios suivants: 

Scénario 1: La connexion peut être une connexion SQL Server mais le serveur accepte uniquement l'authentification Windows.

Scénario 2: Vous essayez de vous connecter à l'aide de l'authentification SQL Server mais le nom de connexion utilisé n'existe pas sur SQL Server.

Scénario 3: L'identifiant peut utiliser l'authentification Windows, mais l'identifiant est un principal Windows non reconnu. Un principal Windows non reconnu signifie que Windows ne peut pas vérifier la connexion. Cela peut être dû au fait que la connexion Windows provient d’un domaine non approuvé.

Il est également possible que l'utilisateur insère des informations incorrectes.

http://support.Microsoft.com/kb/555332

74
Bryan Swan

J'ai rencontré le même problème et je l'ai corrigé en ajoutant mon nom d'utilisateur Windows à SQL, puis à mon serveur. Voici comment j'ai résolu ce problème:

Commencez par créer une nouvelle connexion avec votre nom d’utilisateur Windows:  enter image description here

Cliquez sur Rechercher, puis tapez votre nom dans la case, puis cliquez sur Vérifier les noms ..  enter image description here

Ajoutez ensuite cet utilisateur au serveur:

Cliquez avec le bouton droit sur Serveur> Autorisations> Recherche> Parcourir> Sélectionnez votre utilisateur .__ (vous remarquerez que l'utilisateur que vous avez créé est maintenant disponible dans la liste)

 enter image description here

J'espère que ça aide ;-)

2
Roberto Rodriguez

J'ai reçu le même message d'erreur lors de la tentative de connexion à ma base de données SQL dans Azure (à l'aide de sql-cli). La solution simple était d'échapper au mot de passe avec des guillemets simples comme ceci:

mssql -s server.database.windows.net -u user@server -p 'your_password' -d your_db -e
1
Tobias

Assurez-vous également que le compte n'est pas verrouillé dans l'onglet "Statut" des propriétés de l'utilisateur.

0
irfandar

Nous avons résolu notre problème de connexion Linux/php à SQL Server en créant un nouveau compte de connexion avec authentification SQL Server au lieu de Windows. 

0
Charles Kuehn

Si vous utilisez l'authentification Windows, veillez à vous connecter au moins une fois à Windows avec cet utilisateur.

0
Farkhod

Pour l'erreur Can not connect to the SQL Server. The original error is: Login failed for user 'username'., les exigences du port côté serveur MSSQL doivent être remplies.

Au-delà du port par défaut 1433, d'autres ports doivent être configurés sur le pare-feu Windows.

https://stackoverflow.com/a/25147251/1608670

0
Ivan Chau