Sql-Server

SSMS 無法連接到 Azure 數據庫

  • November 7, 2019

我有一台新的 Windows 10 機器並安裝了最新版本的 SQLEXPRESS,然後安裝了最新版本的 SSMS (17.9.1)。

嘗試連接到我的 Azure 數據庫時,出現以下錯誤。

在此處輸入圖像描述


連接到“mydb.database.windows.net”時出錯。

                              • 附加資訊:

未能為此請求檢索數據。(Microsoft.SqlServer.Management.Sdk.Sfc)


執行 Transact-SQL 語句或批處理時發生異常。(Microsoft.SqlServer.ConnectionInfo)


從伺服器接收結果時發生傳輸級錯誤。(提供者:TCP 提供者,錯誤:0 - 現有連接被遠端主機強行關閉。)(Microsoft SQL Server,錯誤:10054)


現有連接被遠端主機強行關閉

到目前為止我已經嘗試過:

  1. 解除安裝/重新安裝 - 不。我做了兩次
  2. 關閉防火牆 - 沒有用。此外,我可以通過 Visual Studio 2017 很好地連接到數據庫,所以這不是防火牆問題。我還用 netstat 驗證了在我遠端登錄到伺服器後埠是打開的。
  3. 不同的版本 - 我嘗試降級到 SSMS 版本 17.9,但我得到了同樣的錯誤。我正在開發 18.0(預覽版 5),只是想看看有沒有什麼適合我的。我可能會在這裡更新這是否適合我。
  4. 不同的數據庫 - 我有兩台 Azure 伺服器,我也無法訪問。我可以毫無問題地連接到我的本地 SQLEXPRESS 實例。

到目前為止,我的 Google-foo 讓我失望了。我錯過了什麼?我目前的理論是 SQLEXPRESS 安裝與 SSMS 安裝發生衝突,但我不知道如何確定——這只是我讀到的曾經是一個問題的東西。

更新

18 預覽 5 對我沒有幫助。同樣的錯誤:(

其他似乎有同樣問題但沒有解決方案的人:

更新 2

解除安裝 SQLEXPRESS 並使用 IISCrypto 將特定的 TLS 條目添加到系統資料庫中也無濟於事。

更新3(在下面的答案之後)

我安裝了 SSDT,一切又都壞了:(。但是,我確實發現我可以毫無問題地連接 SSMS 中的單個查詢,但我無法連接到對象資源管理器中的伺服器。去圖。

如果我發現其他東西,我會在這裡更新。

更新:我發現連接到 AWS 也失敗了,這導致我再次進行Google搜尋,這導致我來到這裡:https ://www.sqlservercentral.com/Forums/1891503/Unable-to-connect-to-SQL-2008-Servers -來自-SSMS-2017

按照引用站點上一篇文章的說明,我下載了 IISCrypto 並啟用了所有密碼答對了。

https://www.nartac.com/Products/IISCrypto/Download

我會在下面留下我之前的答案,以防它給那些經歷過不眠之夜和幾個鍵盤的人帶來安慰。


舊更新 - 安裝 SSDT 15.8.2 後,以下解決方案停止為我工作:(


經過幾天:

  • MS Azure SQL 支持 - 沒有幫助(他們只是讓我參考這篇文章。做的那個。)
  • 解除安裝 SQL Server Express/Developer 和三個不同版本的 SSMS - 都具有相同的結果
  • 使用 Win 10 Pro 在我的電腦上創建 VM - SSMS 可以正常工作
  • 擦除電腦並從零開始(使用 MSI 恢復) - 仍然是同樣的問題
  • 檢查 TLS 數據包以確保版本 1.2 - 它是 1.2
  • 嘗試與 SqlPackage.exe 連接 - 從來沒有為我工作過,與 SSMS 相同的錯誤
  • 嘗試與 SQLCMD 連接 - 它成功了!
  • 嘗試連接 SQL Native Client - 也有效!

…我終於讓它工作了。好消息是它有效。壞消息是我不知道具體原因。

我目前使用 SSMS 17.9.1 安裝了全新的 Win 10 Pro。我沒有安裝任何 SQL Server 實例。我的預設 Windows 防火牆已啟用,Norton AntiVirus 正在管理它(預設使用電腦)。在撰寫本文時,所有 Windows 更新均已應用。我還下載並安裝了 SQL Server 2012 Native Client https://www.microsoft.com/en-us/download/confirmation.aspx?id=50402

當它開始工作時,我剛剛使用 SQLCMD 並連接到 Azure SQL Servermaster數據庫並正在查詢sys.event_log表。在此之前,我曾使用 SQLCMD 連接到同一台伺服器上的不同數據庫。當我在表中沒有看到任何內容時,sys.event_log我回到了 SSMS,它適用於我的所有伺服器(我們有三個)。

TL;DR 用 SQLCMD 連接一段時間,看看是否有幫助?

可以連接 SQLCMD 等其他工具嗎?

此外,數據庫上的目前工作負載可能會導致它達到層限制,這將導致您的數據庫出現連接問題。在 Azure 門戶中查看使用指標,看看你是否達到了任何限制。

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