Sql-Server-2012

SSMS 無法通過 Windows 身份驗證通過 IP 連接遠端伺服器

  • October 31, 2019

我正在嘗試IP,port通過 Windows 身份驗證連接遠端伺服器。

它將以以下錯誤結束

連接超時已過期。嘗試使用登錄前握手確認時超時時間已過。這可能是因為登錄前握手失敗或伺服器無法及時響應。嘗試連接到此伺服器所花費的持續時間是 -

$$ Pre-Login $$初始化=41306;握手=27677;(Microsoft SQL Server,錯誤:-2)

但是,如果連接到IP,portsa通過 SQL Server 身份驗證登錄,那麼我可以正確連接到伺服器。

此外,如果我切換到MachineName,port並通過 Windows 身份驗證登錄,那麼我也可以成功連接。

不知道我需要什麼樣的設置/調整才能使這個案例工作。

環境

  • 我的筆記型電腦是 Win10,SQL Server 2012 在 Windows server 2012 R2 上
  • 這兩台機器在同一個域中。
  • 我們正在使用另一個埠而不是預設的 1433。

我試過的情況

  1. IP,port通過 Windows 身份驗證遠端- 失敗
  2. MachineName,port通過 Windows 身份驗證遠端- 成功
  3. 遠端IP,port通過 SQL Server 身份驗證(sa 帳戶) - 成功
  4. IP\MSSQLSERVER,port通過 Windows 身份驗證遠端- 失敗
  5. IP,portRDP 遠端然後通過 Windows 身份驗證使用 ssms - 成功

我試過的設置

  • 將 SQL Server exe 添加到入站規則
  • 啟動 SQL Server 瀏覽器
  • 將 IP1 更改為我正在使用的 IPv4 並啟動/啟用它(也重新啟動服務)
  • 確保在 MSSQLSERVER 和客戶端協議(/32 位)的協議上啟用 TCP/IP
  • 將我正在使用的埠添加到 IPAll/TCP 埠並將動態埠保留為空白

所以事實證明超時實際上是超時……在我將連接超時時間延長到 90 秒後,它在大約一分鐘後連接。

基礎設施人員說這可能是因為它試圖解析機器名稱或其他東西?(我不太熟悉網路和設置的東西)。如果他們想出任何方法來加快這個過程,我會更新這個答案。

案例編號 4 ( IP\MSSQLSERVER,port) 不是必需的。但是,問題似乎與執行 SQL 服務的 Windows 級別的安全協議/提供程序有關。

希望這篇文章對進一步的故障排除和解決方案有所幫助,應用 Windows 安全路徑將是解決此類問題的正確方法。

引用自:https://dba.stackexchange.com/questions/252278