2016-11-26 107 views
1

JDBC連接字符串我在SQL Server中使用下列配置創建一個數據庫:與實例名稱和域名

而且,我試圖連接到名爲EDS數據庫。

對於我創建了以下細節:

我應該有域字符串中還是應在用戶名? 當我去到數據庫屬性,我看到所有者了。 另外,根據圖像,實例部分的url是否正確?它看起來不能去那個特定的實例。

而且,這是當我把用戶名中我收到以下錯誤日誌的連接(使用Windows Authenticaton)

配置:

com.microsoft.sqlserver.jdbc。 SQLServerException:登錄失敗,用戶'。 ClientConnectionId:e812971f-B03C-4210-9dbd-de0791bcc304

+1

如果要使用實例名稱進行連接,則不應包含端口號,因爲SQL Browser服務將爲您解決問題。另外,SQL Express實例很可能不*監聽端口1433.(默認情況下,SQL Express實例監聽40000+範圍內的任意端口號)。 –

+0

我配置了SQLEXPRESS01以監聽端口。所以我應該刪除連接字符串上的實例並只使用端口?有道理@GordThompson – JoaoFilipeClementeMartins

+0

如果你自己配置了端口1433,那麼是的,只需要主機名和端口號就可以。 –

回答

2

在指定的SQL Server實例的位置,一個通常提供serverName\instanceNameserverName:portNumber,不能同時使用。也就是說,無論是

jdbc:sqlserver://INNOWAVE-99\SQLEXPRESS01;databaseName=EDS 

jdbc:sqlserver://localhost:1433;databaseName=EDS 

(假設SQLEXPRESS01實例已明確配置爲偵聽端口1433,這不是一般的SQL Express實例的情況下)。

,如文檔中提到的Building the Connection URL

如果既有端口號和實例名的使用,該端口號將優先考慮和實例名會被忽略。

沒有domain=屬性爲Microsoft SQL Server的JDBC驅動程序的連接URL定義。使用Windows域憑據登錄到SQL Server實例是通過使用integratedSecurity=true連接屬性(和而不是明確提供用戶名和密碼)隱式完成的;詳情here

+0

非常感謝@GordThompson。這確實解決了它。缺少的部分是integratedSecurity = true與正確的DLL。 – JoaoFilipeClementeMartins