J'essaie d'utiliser DriverManager.getConnection()
pour me connecter à une base de données SQL Server à partir d'une application Java, mais je continue à me connecter échoué pour l'utilisateur "erreurs avec elle. J'ai essayé d'utiliser à la fois com.microsoft.sqlserver.jdbc.SQLServerDriver
et net.sourceforge.jtds.jdbc.Driver
pour se connecter, mais les deux continuent à frapper le problème.Connexion à SQL Server échouant à partir de Java DriverManager.getConnection(), en travaillant à partir de Python avec pymssql.connect()
Voici le code que je utilise pour se connecter:
Class.forName("net.sourceforge.jtds.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:jtds:sqlserver://SERVERADDRESS:1433;DatabaseName=DBNAME;user=USER;password=PASS");
Je sais que compte a accès à cette base de données, comme je l'ai connecté à avant à partir d'une application Python en utilisant pymssql.connect(SERVERADDRESS, USER, PASS, DBNAME)
avec le même serveur/DB/creds.
De this article, j'ai finalement réussi à faire fonctionner l'authentification Windows avec mon compte personnel, mais je n'arrive toujours pas à l'utiliser avec notre compte de service. Quelqu'un at-il un aperçu de la raison pour laquelle l'application Python peut se connecter, mais le Java ne peut pas?
Lorsque vous vous connectez depuis l'application Python sont vous spécifiez le nom d'utilisateur du compte de service en tant que "DOMAINNAME \ USERNAME"? En d'autres termes, le compte de service est-il un compte Windows, par opposition à un nom de connexion "Authentification SQL Server"? –
Je suis, ça passe dans 'domain \\ svc_account'. Je fais la même chose dans la chaîne de connexion en Java. Donc la chaîne de connexion est '' jdbc: jtds: sqlserver: // SERVERADDRESS: 1433; DatabaseName = DBNAME; utilisateur = domain \\ svc_account; password = PASS "' –