嘗試使用 SSMS 連接 SQL Server 執行個體時,可能發生【無法產生 SSPI 內容】的錯誤

本文將介紹當您嘗試使用 SSMS 連接 SQL Server 執行個體時,可能發生【無法產生 SSPI 內容】錯誤的解決方案。

今天一早在嘗試透過 SSMS 連接遠端 SQL Server 執行個體時,發生【無法產生 SSPI 內容 (英文版:Cannot generate SSPI context)】的錯誤(如下圖)。

image

查過 KB 811889 和 黑暗大的文章得知,發生這類的問題通常是因為 SSPI 使用 Kerberos 透過 TCP/IP 進行委派,但無法完成必要的作業來將使用者的安全性權杖成功地委派給執行 SQL Server 伺服器,而且 Kerberos 驗證要成正常運作,前提是網路環境中的 DNS 伺服器必須是可以正常運作的。

回想起來,一早進辦公室筆者使用自己的開發機來測試無線 AP,測試完畢之後再將開發機重新接回公司的 Switch 後,嘗試連接 SQL Server 就出現上圖的錯誤訊息,由於無線 AP 中的 DNS 指定的是 GOOGLE 和 HINET 的對外的 DNS 伺服器,沒辦法存取 LAN 裡面的 SQL SERVER 伺服器是很合理的,因此筆者將開發機的網卡停用再重新啟用,讓電腦自行取得 IP 並清除 DNS 的快取之後,就可以順利連接 SQL Server 了。不確定這招是否每次都有用,不過下次您如果遇到跟筆者相同的錯誤時,或許可以先回想一下您做了哪些動作,再參考 KB 中所說的。如果您跟筆者一樣覺得 KB 中的步驟有點繁瑣,而且您並非跟黑暗大一樣有調整過電腦的系統時間,或許可以試試看筆者的做法。

 

【參考資料】