2

MSSQL服務器位於「abc」域中,並具有混合模式身份驗證。 我從不在域或域「xyz」中但使用MSSQL Jdbc驅動程序2.0在同一網絡中的計算機進行連接。我已經以管理員或帳戶登錄到xyz域。Windows身份驗證受信任的連接不工作

它工作正常使用下面的URL連接「sa」或SQL模式身份驗證。

jdbc:sqlserver://%DB_IP%:%DB_PORT%;SelectMethod=cursor;DatabaseName=dbname

它不使用證書"MSSQLDomain\username""abc\username"以下網址

jdbc:sqlserver://%DB_IP%:%DB_PORT%;SelectMethod=cursor;integratedSecurity=true;DatabaseName=dbname;

給出以下錯誤工作窗口驗證,使用。 用戶登錄失敗。該用戶未與可信的SQL Server連接相關聯。

我已經嘗試添加屬性Trusted_Connection =是的網址,但仍然給出相同的錯誤。 我不想映射SQL Server的驅動器。我可以通過提供「MSSQLDomain \ username」和密碼來訪問SQL Server計算機的任何共享文件夾。

如果兩臺機器都在同一個域中,它對兩種認證模式都可以正常工作。 如果我使用jtDS驅動程序從不在域或在同一網絡內的「xyz」域內,即相同的子網,它工作正常。

回答

2

這是Windows身份驗證的故意和正確的行爲。

這是因爲您從中連接的域與您的SQL Server實例所在的域不是相同的Windows域。

我相信有橋接域的方法可以這麼說,但它們需要自定義和棘手的實現。您還必須配置域之間的信任關係。

以下線程包含您可能會覺得有用的討論。

http://sql-server-performance.com/Community/forums/p/24601/137574.aspx

0

我曾經參與制作的SQL服務器連接十字架那樣域,這是非常痛苦的。爲了使用來自其他域的憑據,您分配權限的域必須信任帳戶來自的域。 IT專業人員通常非常不願意以這種方式信任另一個域,並且出於充分的理由,如果這種信任關係尚未建立,可能不太可能說服管理員這樣做。

建立了信任關係後,您可能需要在Active Directory中註冊SQL Server的SPN,並分配委派權限。這種類型的環境非常難以設置,故障排除和維護。

我希望有其他方式可以做到這一點,因爲聽起來好像你正在走向一個非常困難的情景。

希望它可以幫助 Rihan

2

更改登錄憑據可能會幫助, 使用SQL身份驗證,而不是NT驗證

https://support.microsoft.com/en-us/kb/555332

症狀

您安裝Microsoft SQL Server 2014年以後, SQL Server 2012,SQL Server 2008,SQL Server 2005或SQL Server 2000,並嘗試連接到運行SQL Se的服務器rver,您會收到以下錯誤消息之一:

登錄用戶'%。* ls'失敗。登錄名是SQL Server登錄名,不能與Windows身份驗證一起使用。%。* ls

用戶登錄失敗。用戶未與可信的SQL Server連接相關聯。 (Microsoft SQL Server,錯誤:18452)

用戶登錄失敗。 (微軟SQL服務器,錯誤:18456)

分辨率

如果用戶嘗試與無法驗證憑據登錄會出現此問題。可能會出現此問題在以下情形:

方案1:

登錄可能是一個SQL Server登錄,但服務器僅接受Windows身份驗證

要解決此問題,在混合驗證配置SQL Server模式。

方案2:

您正在嘗試使用SQL Server身份驗證連接,但使用的SQL Server

上不存在登錄要解決此問題,驗證SQL Server登錄。有關更多信息,請參閱在SQL Server聯機叢書中創建登錄。

方案3:

登錄可以使用Windows身份驗證,但是登錄是一個無法識別的Windows主體

一個無法識別的Windows主體意味着Windows無法驗證的登錄。這可能是因爲Windows登錄來自不受信任的域。要解決此問題,請驗證您是否登錄到了正確的域。

相關問題