it-swarm.com.de

SqlServer: Anmeldung für Benutzer fehlgeschlagen

Ich habe ein sehr einfaches Jdbc-Login-Testprogramm geschrieben. Und nach allen möglichen Problemen habe ich es fast geschafft. Fast scheint dieses Problem "SQLServerException: Anmeldung für Benutzer xxxxx fehlgeschlagen" nicht zu überwinden.

Ich habe eine einfache Datenbank "PersonInfo" erstellt und dann den Benutzer "user1" password1 (SQL-Authentifizierung) erstellt. Und nach dem Versuch konnte sich alles nicht mit der Datenbank verbinden.

Ich verwende SqlServer2008 unter Windows 7, ich habe den neuesten Jdbc-Treiber von Microsoft. 

Mein Code lautet:

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();
    }
}
}

Hier ist die Ausnahme 

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

Leider bin ich jetzt tot im Wasser, bis irgendein SqlServer Guru oder Jdbc Guru Mitleid mit mir hat und mir hilft.

danke im Voraus.

22
sohaib

Befindet sich Ihr SQL Server in der "gemischten Authentifizierung"? Dies ist erforderlich, um sich mit einem SQL-Server-Konto anstelle eines Windows-Anmeldenamens anzumelden.

Sie können dies überprüfen, indem Sie die Eigenschaften des Servers und dann SECURITY überprüfen. Es sollte sich im 'SQL Server- und Windows-Authentifizierungsmodus' befinden.

Dieses Problem tritt auf, wenn der Benutzer versucht, sich mit Anmeldeinformationen anzumelden, die nicht überprüft werden können. Dieses Problem kann in den folgenden Szenarien auftreten: 

Szenario 1: Bei der Anmeldung kann es sich um eine SQL Server-Anmeldung handeln, der Server akzeptiert jedoch nur die Windows-Authentifizierung.

Szenario 2: Sie versuchen, mithilfe der SQL Server-Authentifizierung eine Verbindung herzustellen, aber die verwendete Anmeldung ist auf SQL Server nicht vorhanden.

Szenario 3: Die Anmeldung verwendet möglicherweise die Windows-Authentifizierung, die Anmeldung ist jedoch ein nicht erkannter Windows-Prinzipal. Ein nicht erkannter Windows-Principal bedeutet, dass Windows die Anmeldung nicht überprüfen kann. Dies kann daran liegen, dass die Windows-Anmeldung von einer nicht vertrauenswürdigen Domäne stammt.

Es ist auch möglich, dass der Benutzer falsche Informationen eingibt.

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

74
Bryan Swan

Ich bin auf das gleiche Problem gestoßen und habe es behoben, indem ich meinen Windows-Benutzernamen zu SQL und dann zu meinem Server hinzugefügt habe.

Erstellen Sie zunächst ein neues Login mit Ihrem Windows-Benutzernamen:  enter image description here

Klicken Sie auf Suchen, geben Sie Ihren Namen in das Feld ein und klicken Sie auf Namen prüfen ... /.  enter image description here

Fügen Sie dann diesen Benutzer zum Server hinzu:

Klicken Sie mit der rechten Maustaste auf den Server> Berechtigungen> Suchen> Durchsuchen.> Wählen Sie Ihren Benutzer aus (Sie werden feststellen, dass der von Ihnen erstellte Benutzer jetzt in der Liste verfügbar ist.)

 enter image description here

Ich hoffe, es hilft ;-)

2

Ich habe dieselbe Fehlermeldung erhalten, als ich versuchte, eine Verbindung zu meiner SQL-Datenbank in Azure herzustellen (mit sql-cli). Die einfache Lösung bestand darin, das Kennwort mit einfachen Anführungszeichen wie folgt zu schützen:

mssql -s server.database.windows.net -u [email protected] -p 'your_password' -d your_db -e
1
Tobias

Stellen Sie außerdem sicher, dass das Konto in der Registerkarte "Status" der Benutzereigenschaften nicht gesperrt ist

0
irfandar

Wir haben unser Linux/php-Problem mit dem SQL Server gelöst, indem wir ein neues Anmeldekonto mit der SQL Server-Authentifizierung anstelle der Windows-Authentifizierung erstellt haben. 

0
Charles Kuehn

Wenn Sie die Windows-Authentifizierung verwenden, müssen Sie sich mindestens einmal mit diesem Benutzer bei Windows anmelden.

0
Farkhod

Für Can not connect to the SQL Server. The original error is: Login failed for user 'username'.-Fehler müssen die Portanforderungen auf der MSSQL-Serverseite erfüllt werden.

Es gibt andere Ports als den Standardport 1433, die für die Windows-Firewall konfiguriert werden müssen.

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

0
Ivan Chau

Bei der Wiederverwendung der ConnectionString-Verbindung von EntityFramework ist dieser Fehler aufgetreten. Wir haben Benutzername und Passwort in der Verbindungszeichenfolge, haben aber nicht "Persist Security Info = True" angegeben. Daher wurden die Anmeldeinformationen nach dem Herstellen der Verbindung aus der Verbindungszeichenfolge entfernt (daher haben wir eine unvollständige Verbindungszeichenfolge erneut verwendet). Natürlich müssen wir immer zweimal überlegen, wenn wir diese Einstellung verwenden, aber in diesem speziellen Fall war es in Ordnung.

0
Alexander