2013-06-28 38 views
0

我有以下問題:我無法將我的Sql Server數據庫連接到我的Java項目。我的數據庫是SQL Server 2008 R2。並擁有Windows身份驗證模式。 我已經使用了下面這行代碼,但仍然是同樣的問題。使用Windows身份驗證將我的Sql Server 2008數據庫連接到我的Java項目

"jdbc: sqlserver ://localhost; integratedSecurity = true;" 

如果數據庫用戶有密碼,我必須與下面這行代碼集成?

"jdbc: `sqlserver ://localhost; integratedSecurity = true; = user, password =;" 

如果我不能做到使用Windows身份驗證的身份驗證,我必須創建具有相同數據的第二數據庫,唯一的區別是使用SQL Server身份驗證而不是Windows身份驗證。

+2

你是否檢查了[文件]在集成安全部分(http://msdn.microsoft.com/en-us /library/ms378428.aspx#Connectingintegrated)?你必須指出'java.library.path'到你有'sqljdbc_auth.dll'的地方。 – maba

+1

你能使用sql認證連接嗎?如果是的話,你檢查你的Windows ID是否添加到sqlserver登錄。你也可以張貼錯誤您收到此 – Surendra

+0

我可以用SQL身份驗證連接,用用戶名和密碼,但是當我做更改Windows身份驗證(與我的問題,插入第一個代碼行的例子)。 –

回答

1

JDBC驅動程序支持通過則將integratedSecurity連接字符串屬性在Windows操作系統上使用類型2集成身份驗證。要使用集成身份驗證,請將sqljdbc_auth.dll文件複製到安裝了JDBC驅動程序的計算機上的Windows系統路徑中的目錄。 的sqljdbc_auth.dll文件安裝在以下位置:

<installation directory>\sqljdbc_<version>\<language>\auth\ 

對於由Microsoft JDBC驅動程序的SQL Server支持的任何操作系統,請參閱使用Kerberos集成身份驗證連接到SQL Server的功能的說明添加到SQL Server的Microsoft JDBC驅動程序4.0中,允許應用程序使用集成身份驗證與類型4 Kerberos連接到數據庫。

注: 如果您運行的是32位Java虛擬機(JVM),請使用x86文件夾中的sqljdbc_auth.dll文件,即使操作系統是x64版本。如果您在x64處理器上運行64位JVM,請使用x64文件夾中的sqljdbc_auth.dll文件。 或者,您可以設置java.libary.path系統屬性以指定sqljdbc_auth.dll的目錄。

例如,如果JDBC驅動程序安裝在默認目錄中,則可以在Java應用程序啓動時使用以下虛擬機(VM)參數指定DLL的位置: -Djava.library.path = C:\微軟JDBC驅動程序4.0 SQL

Server\sqljdbc_<version>\enu\auth\x86

http://msdn.microsoft.com/en-us/library/ms378428.aspx

-2

您收到的錯誤提示,問題出在JDBC驅動程序上,而不是數據庫或應用程序代碼。

根據Microsoft論壇,該問題已修復與驅動程序的版本1.2。請嘗試下載此版本,因爲它應該可以解決您的問題。

最新的版本可以在http://www.microsoft.com/en-in/download/details.aspx?id=11774

參考中找到:http://www.microsoft.com/en-in/download/details.aspx?id=11774

+0

第一條評論。如果把** ** sqljdbc4.jar在我的項目的lib在Eclipse中解決我的問題還是我必須安裝** ** sqljdbc4.exe到SQL Server 2008? –

相關問題