我有基于Web的应用程序并拥有MSSQL server 2012,需要使用窗口身份验证和使用Tomcat 6和OS Windows来访问该数据库
但是同样的功能与MSSQL服务器2008而不是MSSQL服务器2012一样正常(窗口身份验证)。所以我可能知道原因是配置中有一些错过。
我将jtds-1.2.5.jar放在apache \ lib目录中,并将ntlmauth.dll放在C:\ Windows \ System32位置,并添加了系统变量" JAVA_OPTS"对于DLL位置,但它不起作用。它给出了错误消息:
2014-10-14 13:35:35,237 ERROR Unable to get database connection: SQL Exception occurred
java.sql.SQLException: Cannot open database "Test" requested by the login. The login failed.
然后我将dll放在jre \ bin目录中,但它不起作用请让我做错了。 另外尝试将dll放在apache \ bin loc中仍然会遇到同样的问题。
但是根据需要使用JTDS api而不是Microsoft驱动程序的客户端要求,需要JTDS api中的解决方案。虽然它在MSSQL服务器2008上运行良好但在MSSQL服务器2012中不起作用。
我按照http://www.dekho.com.au/dekho-connecting-to-sql-server-using-windows-authentication/
链接答案 0 :(得分:1)
我们遇到了与JDTS类似的问题,并且在某些时候使用了Microsoft的官方JDBC驱动程序。 Microsoft驱动程序适用于Windows,Linux和MacOS,并且不要求我在任何地方放置任何DLL或类似的东西。
http://msdn.microsoft.com/en-us/sqlserver/aa937724.aspx
此驱动程序的唯一缺点是(1)它不是开源的,因此您无法在需要时更改它,以及(2)您需要接受许可证。但是,(2)应该不是问题,因为无论如何都在使用MSSQL Server。
最后(我不确定这是否适用于您)Microsoft驱动程序不能与Maven一起使用。所以我(在Mac上)使用以下bash脚本将驱动程序安装到我的本地Maven存储库中。
#!/bin/bash
mvn install:install-file -Dfile=lib/sqljdbc4.jar -DgroupId=com.microsoft.sqlserver -DartifactId=sqljdbc4 -Dversion=3.0 -Dpackaging=jar
对于JDBC Connection字符串,请参阅以下网页:
http://msdn.microsoft.com/en-us/library/ms378428(v=sql.110).aspx
在您的情况下,因为您要进行Windows身份验证,所以需要确保添加
;integratedSecurity=true;
到jdbcUrl。