2012-07-23 57 views
2

我正在嘗試使用集成安全性將我們的Web服務器與SQL Server數據庫集成在一起。我一直在四處尋找試圖找到一個unix版本的sqljdbc4.jar,但我似乎無法找到.so文件只有.dll的。unix上的MSSQL JDBC

有誰知道我可以在哪裏獲得所需的.so文件或另一種使用集成安全性的方式?

目前我的應用程序無法與

com.microsoft.sqlserver.jdbc.SQLServerException: This driver is not configured for integrated authentication 

連接,我可以在日誌中看到

WARNING: Failed to load the sqljdbc_auth.dll 

更早。

使用版本2.5的mssqljdbc。

+0

只是一個想法,如果集成安全手段與Windows操作系統的安全集成,您將無法在Unix上實現這一功能。爲什麼你需要集成安全性? – beny23 2012-07-23 11:05:51

+0

管理數據庫的人員只允許這種類型的登錄。沒有意識到這意味着Windows操作系統集成認爲它只是操作系統集成。他們似乎認爲有可能在unix服務器上再次檢查它們。 – James 2012-07-23 11:09:16

+0

這裏的答案(http://stackoverflow.com/questions/167464/can-i-connect-to-sql-server-using-windows-authentication-from-java-ee-webapp)可能會給你更多的信息 – 2012-07-23 11:14:59

回答

3

根據these docs,從MSSQL JDBC Driver 4.0開始,您應該能夠指定authenticationScheme=JavaKerberos以使用不需要sqljdbc_auth.dll的純Java Kerberos實現。

請注意,我沒有試過這個。

+0

是這個工作。謝謝您的幫助。 – James 2012-07-26 08:45:51

0

我知道它的晚,但對任何人搜索這個,請嘗試以下操作:

把sqljdbc_auth.dll在您的資源文件夾,然後添加以下代碼

ClassLoader classLoader = TestDBConnection.class.getClassLoader(); 
File file = new File(classLoader.getResource("sqljdbc_auth.dll").getFile()); 
System.setProperty("java.library.path", file.getParent());