Microsoft a récemment publié un nouveau pilote JDBC (version 6.0.7507.100) avec des fonctionnalités très intéressantes. Je suis surtout intéressé par la fonctionnalité TVP. C'est pourquoi je voudrais replace le pilote jTDS actuel par le pilote Microsoft.
Le problème se pose lorsque vous essayez de vous connecter à notre server de production. Disons que nous utilisons l'user de domaine "mydomain \ dbuser" pour se connecter à l'instance du server sql. C'est l'URL jtds jtds que nous avons utilisée jusqu'ici:
jdbc:jtds:sqlserver:/sqlServer:1433/myDb;domain=mydomain;user=dbuser;password=secretPwd
Il fonctionne comme un charme.
Mais lorsque j'essaie d'utiliser le pilote Microsoft, mon application ne peut pas établir une connection à la database. J'ai essayé les strings d'URL suivantes:
jdbc:sqlserver://sqlServer:1433;database=myDb;username=dbuser;password=secretPwd jdbc:sqlserver://sqlServer:1433;database=myDb;username=mydomain\dbuser;password=secretPwd jdbc:sqlserver://sqlServer:1433;database=myDb;username=dbuser@mydomain;password=secretPwd
et beaucoup d'autres permutations mais sans succès. L'application échoue avec l'exception suivante:
com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'mydomain\dbuser'
Dans le journal SQL Server, nous obtenons l'erreur suivante:
Login failed for user 'mydomain\dbuser'. Reason: Attempting to use an NT account name with SQL Server Authentication. [CLIENT: 10.10.10.10]
Notez que l'application est supposée fonctionner sous Linux.
Est-ce que quelqu'un sait à quoi ressemblera l'URL Microsoft JDBC lors de la connection en tant qu'user de domaine?
Mes searchs dans ce numéro m'ont conduit aux conclusions suivantes:
J'ai réussi à append l'authentification Kerberos dans mon service principalement avec l'aide de ces messages: https://blogs.msdn.microsoft.com/psssql/2015/01/09/jdbc-this-driver-is-not-configured -for-integrated-authentication / , https://msdn.microsoft.com/en-us/library/gg558122(v=sql.110).aspx, donc je vais l'utiliser.
Pas directement la réponse à votre question , mais si vous voulez récupérer le dernier pilote (ce qui pourrait résoudre votre problème):
La dernière version de Microsoft est https://www.microsoft.com/en-us/download/details.aspx?id=11774, qui contient également les dlls sqljdbc_xa et sqljdbc_auth pour la security embeddede.
De maven vous obtiendrez https://repo1.maven.org/maven2/com/microsoft/sqlserver/mssql-jdbc/
Directement à partir de la source https://github.com/Microsoft/mssql-jdbc/releases
voir la remarque: https://github.com/Microsoft/mssql-jdbc#download-the-dlls