SQL Server 从 Java DriverManager.getConnection() 登录失败,使用 pymssql.connect() 从 Python 工作

2024-01-13

我正在尝试使用DriverManager.getConnection()从 Java 应用程序连接到 SQL Server 数据库,但我不断收到“用户登录失败”错误。我尝试过同时使用com.microsoft.sqlserver.jdbc.SQLServerDriver and net.sourceforge.jtds.jdbc.Driver连接,但两者都不断遇到这个问题。

这是我用来连接的代码:

Class.forName("net.sourceforge.jtds.jdbc.Driver");  
conn=DriverManager.getConnection("jdbc:jtds:sqlserver://SERVERADDRESS:1433;DatabaseName=DBNAME;user=USER;password=PASS");  

我知道该帐户可以访问该数据库,因为我之前已经使用Python应用程序连接到它pymssql.connect(SERVERADDRESS, USER, PASS, DBNAME)具有相同的服务器/数据库/信用。

From 本文 https://stackoverflow.com/questions/14945075/receiving-sqlexception-login-failed-for-user-connecting-to-sql-server-2008,我最终设法使用 Windows 身份验证和我的个人帐户使其工作,但我仍然无法使用我们的服务帐户使其工作。有谁知道为什么Python应用程序可以连接而Java应用程序不能连接?


pymssql 构建在 FreeTDS 之上。 FreeTDS 和 jTDS 都支持名为 NTLM 的旧版 Windows 身份验证方案,而 Microsoft 的 SQL Server JDBC 驱动程序 (mssql-jdbc) 的当前版本不再支持该身份验证机制。

因此,鉴于您已确认 pymssql 可以连接,您应该能够以 Windows 用户身份从 Java 应用程序进行连接MYDOMAIN\username像这样使用 jTDS:

String myUid = "username", myPwd = "mypassword";
String connUrl = "jdbc:jtds:sqlserver://192.168.1.123:1433/databasename;DOMAIN=MYDOMAIN";
Connection conn = DriverManager.getConnection(connUrl, myUid, myPwd);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL Server 从 Java DriverManager.getConnection() 登录失败,使用 pymssql.connect() 从 Python 工作 的相关文章

随机推荐