Herstellen einer Verbindung Zu SQL Server Mit Windows-Authentifizierung Von Einer Linux-Maschine Über JDBC
Ich möchte in der Lage sein, eine Verbindung zu einem SQL Server mithilfe von jdbc-und windows-Authentifizierung.
Ich sah einige Antworten im internet sagen ich sollte fügen Sie die folgende Eigenschaft in der Verbindungszeichenfolge:
integratedSecurity=true;
Und auch
sqljdbc_auth.dll
Den java-Pfad.
Aber diese, soweit ich das verstanden habe gilt das nur, wenn ich die Verbindung von einer Windows-Maschine.
Wenn ich versuche diese auf einem Linux-Rechner, den ich bekommen:
java.sql.SQLException: This driver is not configured for integrated authentication
Meine Frage ist wie mache ich es von einer Linux-Maschine.
Dank
- "dll" ist ein Hinweis, dass dies wahrscheinlich eine windows-Bibliothek. Auf Linux würde Sie wahrscheinlich eine ".so" oder etwas anderes als "dll".
- ich weiß, das ist, warum ich gefragt, wie ich es von linux.
- ich lese diesen Artikel, aber es bezieht sich auf Windows und nicht Linux, als ich fragte
- Ich war in der Lage, es zu bekommen, um die Arbeit mit jTDS, wie bereits in meiner Antwort hier.
- Danke @GordThompson mein problem ist, dass ich nicht verwenden können, jTDS, wie ich auch die Verwendung von ssl und die jTDS hat einen bug, der verhindert, dass ssl verwendet wird.
- Haben Sie versucht
authenticationScheme=JavaKerberos
offiziellen Treiber? stackoverflow.com/a/50561067/1266906 - diese Lösung gilt nur für verbindungen von Windows-Maschinen erfordert es ein .dll Datei. Ich brauche eine Verbindung von einem linux-Rechner.
- Ich denke, dass die .dll wird nur benötigt, für die anderen authenticationScheme, aber ich bin derzeit Mangels Test-Gelegenheit.
- Ich habe es getestet. Es hat nicht funktioniert.
- Danke!!!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gut, schließlich habe ich Antwort auf meine eigene Frage:
Ist dies nicht möglich, verwenden Sie die Windows-Authentifizierung von einem linux-Rechner mit dem Microsoft JDBC-Treiber.
Dies ist möglich mit der jTDS JDBC-Treiber verwenden Sie die folgende Verbindungszeichenfolge:
Danke an Euch alle für all die Kommentare,
CONTOSO.IT\Julio-PC
oder[email protected]
,CONTOSO.IT
ist der domain-name und der Nutzer istJulio-PC
.TL;DR
Es ist nicht möglich, verwenden Sie die nativen Windows-Authentifizierung für JDBC-verbindungen zu MSSQL von einer JVM läuft auf Linux.
In diesem MSDN-Artikel erklärt die authentiation Methoden mit JDBC unter Linux, potenzielle Fehler und mögliche Optionen:
https://blogs.msdn.microsoft.com/psssql/2015/01/09/jdbc-this-driver-is-not-configured-for-integrated-authentication/
...
Mithilfe der Kerberos-Authentifizierung zum herstellen einer Verbindung zu SQL Server
http://msdn.microsoft.com/en-us/library/gg558122%28v=sql.110%29.aspx
Ich weiß, das ist schon ein älteres Thema, aber im Fall Google schickt die Leute hier:
Gibt es zwei Haupt-JDBC-Treiber für SQL Server. Ist von Microsoft und die andere von jTDS. jTDS kann, erstaunlich, verbinden Sie mithilfe von Windows-auth (NTLM) von anderen Plattformen, darunter auch Linux, wie hier beschrieben: http://jtds.sourceforge.net/faq.html#windowsAuth. Es können natürlich auch SQL-authentifizierte Anmeldungen. SQL-authentifizierte logins sind nicht schwerer zu bedienen von jedem OS als jede andere, so vergessen Sie nicht über diese option.
Version von Microsoft bereitgestellt, ist der eine, von dem @mjn sofern ein Zitat aus der Dokumentation. Es ist in der Lage, zum herstellen einer Verbindung mithilfe der Windows-Authentifizierung durch Angabe
integratedSecurity=true
,authenticationScheme=javaKerberos
, undauthentication=NotSpecified
.Es ist schwierig, um diese Arbeit, auch wenn Sie nicht gehen aus dem Weg, um finden mehr Verwirrung, so behalten Sie immer im Hinterkopf, welchen Treiber du benutzt - und Sag uns, in diese Beiträge, so dass Sie können mehr spezifische Hilfe.
Für diejenigen, die mit DBeaver die Möglichkeit, eine Verbindung zu der SQL Server-Datenbank:
Um die Verbindung zu dem SQL Server von Linux Debian mit DBeaver
1.- Wählen Sie SQL Server-jTDS-Treiber
2.- Geben Sie die Verbindungsinformationen
3.- Gehen Sie zu Treiber-Eigenschaften-Registerkarte und fügen Sie die Domäne, Benutzer, Kennwort
Nur als Anmerkung, die in einigen post habe ich festgestellt, dass Sie benötigt, um die Eigenschaft zu ändern USENTLMV2 zu WAHREN, aber es funktionierte für mich, entweder, indem Sie die USERTLNMV2 in true oder false.
Ein problem, das ich fand, war, dass wenn ich versuche die Verbindung zu der Datenbank mit meinem Benutzer und Passwort der nächste Fehler ausgegeben wurde:
Login fehlgeschlagen. Die Anmeldung aus einer nicht vertrauenswürdigen Domäne und kann nicht verwendet werden mit Windows-Authentifizierung.
Dieser Fehler wurde ausgelöst, weil mein user war zu verfallen. Ich habe versucht, mit einem anderen AD-user und könnte es eine Verbindung.