Tomcat服务器的MSSQL Window身份验证问题

时间:2014-10-14 09:21:38

标签: java sql-server tomcat6 jtds

我有基于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/

链接

1 个答案:

答案 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。