SQL Server - 使用Windows身份验证连接

32

我必须使用Windows身份验证连接到SQL Server。

SQL Server位于192.168.3.6机器上,Web服务器(客户端)位于我的机器192.168.3.10上。

我正在使用JTDS驱动程序。

dbUrl=jdbc:jtds:sqlserver://192.168.3.6:1099/db_test;instance=test
Connection con = DriverManager.getConnection( dbUrl, "", "" );

我拥有SQL Server管理员用户的用户名和密码!

我还将ntlmauth.dll放在c:\windowsc:\windows\system32中,但一直出错:

java.sql.SQLException: 登录失败,用户为 '(null)'。原因:未关联到受信任的 SQL Server 连接。

有什么解决方法吗? 非常感谢。

2个回答

50

4
太好了,我解决了。dbUrl=jdbc:jtds:sqlserver://192.168.3.6:1099/db_test;instance=test;useNTLMv2=true;domain=workgroup Connection con = DriverManager.getConnection(dbUrl, dbUser, dbPwd)我必须使用参数 useNTLMv2=true 和 domain。参数 domain 的值不重要。它也可以与 domain=pippo 一起使用!我不知道为什么…… :-) - Federico Artebani
有什么想法为什么这个在使用相同参数时可以在TC中工作,但在DBVisualizer中却不能工作? - killjoy
我没有看到有关输入连接字符串密码的问题得到解决;似乎被回避了。有人能提出建议吗? - MSIS

2
你可以做的事情是这样的:

你可以像下面这样做:

String url = "jdbc:jtds:sqlserver://MYPC/MYDB;instance=SQLEXPRESS";
Class.forName("net.sourceforge.jtds.jdbc.Driver");
Connection conn = DriverManager.getConnection(url);

请确保Java构建路径中包含jtds.jar。
此外,添加“-Djava.library.path=”PATH\JTDS\x64\SSO”,其中“Path”是安装JTDS驱动程序后SSO文件夹所在的位置(这是您放置ntlmauth.dll的位置)。 这里提供了一个简短的逐步指南,展示如何使用jTDS(以及JDBC)使用Windows身份验证连接到SQL Server,如果需要更多细节,请参考。希望能有所帮助!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接