Se connecter à SQL Server à partir de Linux via JDBC à l'aide de integratedSecurity (authentification Windows)?
Hé, je vais avoir du mal à se connecter à un Serveur SQL server avec du code Java qui s'exécute sur Linux.
Si j'ai mis integratedSecurity=true
, puis 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
qui est logique puisqu'il n'y aura pas sqljdbc.dll
fichier sur Linux.
Mais si j'ai mis integratedSecurity=false
, puis j'obtiens l'erreur suivante:
com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'IT_DEV_USER'.
Donc, personne ne sait comment je peux me connecter à SQL Server avec integratedSecurity
défini à false? (Notez que je ne peux même pas vous connecter lorsque le code Java est en cours d'exécution sur Windows quand integratedSecurity
est définie sur false.)
Si non, est-il possible que je peux obtenir integratedSecurity
de travail sur Linux?
OriginalL'auteur fulhamHead | 2015-06-18
Vous devez vous connecter pour publier un commentaire.
Si vous souhaitez utiliser la sécurité intégrée et l'utilisation du Pilote JDBC 4.0 ou supérieure, puis vous ajoutez les lignes suivantes dans votre chaîne de connexion jdbc.
Plus d'informations: http://blogs.msdn.com/b/psssql/archive/2015/01/09/jdbc-this-driver-is-not-configured-for-integrated-authentication.aspx
Essayez de spécifier le nom de l'instance, il devrait résoudre le problème. msdn.microsoft.com/en-us/library/ms378428.aspx
Autant que je sache, tout en ajoutant que kerberos doit être utilisé n'est pas suffisant: il faut le protocole kerberos est correctement configuré, et vous avez besoin d'un ticket kerberos de l'ANNONCE.
Oui, la configuration de kerberos si nécessaire de le faire. Veuillez vérifier le lien dans la réponse.
OriginalL'auteur gK.
Ajoutant
authenticationScheme=JavaKerberos
fonctionne pour moi sous Linux, mais assurez-vous de supprimerintegratedSecurity=true
puisque vous n'êtes pas à l'aide de Windows.OriginalL'auteur K C
Si vous ne voulez pas Intégré de la Sécurité de la connexion, puis définissez ce paramètre à false et, au lieu de fournir à l'utilisateur et le mot de passe dans le connURL comme ci-dessous:
OriginalL'auteur navin_rai
Vous ne pouvez pas utiliser integratedSecurity fonctionnalité de système Linux, comme il lié à windows, système et utilise l'authentification windows. Toutefois, si vous permettre à la fois de SQL Server et le mode d'Authentification Windows sur votre Serveur SQL server, vous pouvez créer une connexion, la carte de correspondant de la base de données et l'utiliser en java à partir de Linux.
Pour activer l'authentification SQL Server:
Vous devriez être en mesure d'utiliser l'authentification kerberos construit dans le pilote JDBC SQL Server.
OriginalL'auteur Vardan Shahinyan