web-dev-qa-db-fra.com

Vous connecter à SQL Server à partir de Linux via JDBC en utilisant integratedSecurity (authentification Windows)?

Hé, je ne parviens pas à me connecter à un serveur SQL avec du code Java exécuté sous Linux.

Si je définis integratedSecurity=true, le code Java échoue avec l'erreur suivante:

WARNING: Failed to load the sqljdbc_auth.dll cause : no sqljdbc_auth in Java.library.path
com.Microsoft.sqlserver.jdbc.SQLServerException: This driver is not configured for integrated authentication. ClientConnectionId:b030b480-453d-4007-8151-a552150f74cd

ce qui est logique car il n'y aura pas de fichier sqljdbc.dll sous Linux.

Mais si je définis integratedSecurity=false, alors j'obtiens l'erreur suivante:

 com.Microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'IT_DEV_USER'.

Alors, est-ce que quelqu'un sait comment je peux me connecter à SQL Server avec integratedSecurity défini sur false? (Notez que je ne peux même pas me connecter lorsque le code Java est exécuté sur Windows lorsque integratedSecurity est défini sur false.)

Sinon, y a-t-il un moyen que je puisse faire fonctionner integratedSecurity sous Linux?

10
fulhamHead

Si vous souhaitez utiliser la sécurité intégrée et utiliser le pilote JDBC version 4.0 ou ultérieure, vous devez ajouter les éléments suivants dans votre chaîne de connexion jdbc.

integratedSecurity=true;authenticationScheme=JavaKerberos

Plus d'informations: http://blogs.msdn.com/b/psssql/archive/2015/01/09/jdbc-this-driver-is-not-configured-for-integrated-authentication.aspx

4
gK.

Ajouter authenticationScheme=JavaKerberos fonctionne pour moi sous Linux, mais veillez à supprimer integratedSecurity=true car vous n'utilisez pas Windows.

0
K C

Si vous ne souhaitez pas que la connexion Integrated Security soit établie, définissez ce paramètre sur false et indiquez plutôt l'utilisateur et le mot de passe dans connURL, comme indiqué ci-dessous:

String connectionUrl = "jdbc:sqlserver://localhost:port;databaseName=DB_NAME;integratedSecurity=false;user=login_user;password=login_pwd;";
0
navin_rai