JDBC-Verbindung zu MSSQL-server im windows-Authentifizierungsmodus
In meinem folgenden Programm ich versuche zu verbinden, MSSQL-Server mithilfe von jdbc in die windows-Authentifizierung. Aber immer folgenden Fehler
import java.io.*;
import java.sql.*;
import java.util.GregorianCalendar;
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
class Cms_truncate
{
public static void main(String[] args)
{
Calendar cal = new GregorianCalendar();
//String name="cmscim";
//String filename = "D:\\programs\\Tomcat 6.0\\webapps\\timescape\\canteen_scheduller\\CMS_CSV\\cms_cim\\"+ name+"-"+cal.get(Calendar.YEAR) +"-" +(cal.get(Calendar.MONTH)+1) + "-"+cal.get(Calendar.DATE)+".csv";
Connection conn = null;
String url = "jdbc:sqlserver://localhost:1433;databasename=CMS_TIMES_MAIN;integratedSecurity=true";
String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String userName = "";
String password = "";
Statement stmt;
try
{
Class.forName(driver);//.newInstance();
conn = DriverManager.getConnection(url,userName,password);
String query = "select * from cim where sapId=10025331";
stmt = conn.createStatement();
int flag = stmt.executeUpdate(query);
System.out.println("flag = "+flag);
conn.close();
System.out.println("");
} catch (Exception e) {
e.printStackTrace();
}
}
}
Ich bin mit SQL-Server die windows-Authentifizierung-Modus.
Muss ich tun, andere Dinge, die verbinden, T-SQL unter Verwendung von jdbc für die windows-Authentifizierung.
FEHLER:
com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host localhost, port 1433 has failed. Error: "Connection refused: connect. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.".
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190)
at com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:241)
at com.microsoft.sqlserver.jdbc.SocketFinder.findSocket(IOBuffer.java:2243)
at com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:491)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1309)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at Cms_truncate.main(Cms_truncate.java:28)
und das haben Sie getan, was vorgeschlagen wird, in der Fehlermeldung?
Auch haben Sie einrichten, den SQL server zu erlauben, die TCP/IP-verbindungen auf port 1433? Es klingt wie Sie haven ' T.
Ich bin nicht immer dieser Fehler .bitte helfen Sie, was zu tun ist
Wie macht man das? Brauche ich irgendwelche dll ' s zu setzen, bis es
Gehen Sie in Ihre SQL-Server-administration-tool und aktivieren Sie die TCP-IP-verbindungen. Wenn das nicht genug Informationen für Euch haben, suchen Sie im Internet nach, wie dies zu tun - ich bin mir sicher, dass es ist bedeckt in eine Menge von Orten.
Auch haben Sie einrichten, den SQL server zu erlauben, die TCP/IP-verbindungen auf port 1433? Es klingt wie Sie haven ' T.
Ich bin nicht immer dieser Fehler .bitte helfen Sie, was zu tun ist
Wie macht man das? Brauche ich irgendwelche dll ' s zu setzen, bis es
Gehen Sie in Ihre SQL-Server-administration-tool und aktivieren Sie die TCP-IP-verbindungen. Wenn das nicht genug Informationen für Euch haben, suchen Sie im Internet nach, wie dies zu tun - ich bin mir sicher, dass es ist bedeckt in eine Menge von Orten.
InformationsquelleAutor yatinbc | 2013-05-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mithilfe der windows-Authentifizierung:
SQL-Authentifizierung verwenden:
InformationsquelleAutor user3029620
Müssen Sie sqljdbc_auth.dll in Ihrem C:/windows/System32 Ordner. Sie können es herunterladen von http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=11774 .
InformationsquelleAutor kris
Müssen Sie zum aktivieren des SQL Server TCP/IP-Protokoll in Sql Server-Konfigurations-Manager-app. Sehen Sie das Protokoll in SQL Server-Netzwerkkonfiguration.
InformationsquelleAutor Naveen Chakravarthy
Versuchen Sie die folgenden Schritte:
Fügen Sie die
integratedSecurity=true
zu JDBC-URL wie diese:Stellen Sie sicher, dass Sie die sqljdbc Fahrer 4 oder höher (sqljdbc.jar) in Ihrem Projekt build-path:
Fügen Sie das VM-argument für Ihr Projekt:
Finden Sie die sqljdbc_auth.dll Datei aus dem DB-server installiert
(C:\Program Files\sqljdbc_4.0\enu\auth\x86)
oder herunterladen von dieser link.Legen Sie die dll-Datei in deinem Projekt-Ordner und geben Sie den VM-argument wie dieses:
VM Arguments:
-Djava.library.path="<<DLL File path till folder>>"
HINWEIS: Überprüfen Sie Ihre java-version, 32/64 bit, dann fügen 32/64 bit version der dll Datei entsprechend.
InformationsquelleAutor Satish
Von Ihrem Ausnahme-trace, wie es aussieht, gibt es mehrere Möglichkeit für dieses problem
1). Sie haben zu prüfen, dass Ihr port "1433" der firewall geblockt wird oder nicht. Wenn Sie finden, dass es blockiert, dann Sie haben sollte zu schreiben "Eingehende Regel". Wenn gefunden in der Systemsteuerung -> windows-firewall -> Vorab-Einstellung (Option finden Sie auf der Linken Seite) -> Eingehende Regel.
2). Im SQL Server-Konfigurations-Manager, Ihre
TCP/IP
- Protokoll finden Sie im deaktivieren Modus. Also, sollten Sie haben, um es zu aktivieren.Danke Kumpel..!!
InformationsquelleAutor Abhishek Shah
Für die aktuellen MS-SQL-JDBC-Treiber (6.4.0) getestet unter Windows 7 innerhalb DataGrip:
server.your.domain
nicht nurserver
; die Dokumentation erwähnt auch die Möglichkeit zu gebenserverSpn=MSSQLSvc/fqdn:port@REALM
, aber ich kann Ihnen leider nicht mit details auf, wie Sie diese nutzen. Bei der Angabe eines fqdn als host wird der spn automatisch generiert werden.authenticationScheme=JavaKerberos
integratedSecurity=true
Da dies mit JavaKerberos ich würde mich über feedback freuen, ob oder nicht, diese Werke außerhalb von Windows. Ich glaube, dass kein .dll ist erforderlich, aber wie ich DataGrip um die Verbindung zu erstellen bin ich unsicher; ich würde auch schätzen das Feedback!
InformationsquelleAutor TheConstructor
Wenn Sie wollen, um die windows-Authentifizierung, verwenden Sie die neueste MS-JDBC-Treiber und Folgen Sie den Anweisungen hier:
https://msdn.microsoft.com/en-us/library/gg558122(v=sql.110).aspx
InformationsquelleAutor Brandon Langley
Nach kämpfen eine Menge, habe ich endlich eine Lösung gefunden, hier gehen wir -
Laden Sie die Datei
jtds-1.3.1.jar
undntlmauth.dll
und speichern Sie Sie im Programm auf Datei -> Java -> JDK -> jre -> bin.Dann verwenden Sie den folgenden code -
InformationsquelleAutor Sidharth Taneja