徵狀
請試想下列案例:
-
您在 Microsoft SQL Server 2012 或 SQL Server 2014 中有 包含的資料庫。
-
應用程式會透過啟用連線 池來嘗試連線到包含的資料庫。
-
應用程式會使用 SQL Server 驗證。
在這種情況下,應用程式可能無法連線至資料庫。 此外,您會在 SQL Server 錯誤記錄中找到如下所示的錯誤:
日期 時間 登入錯誤:18456、嚴重性:14、State:5。使用者「SID」的日期時間登入登入失敗。 原因:找不到與提供的名稱相符的登入 [用戶端:]日期時間 spid# 錯誤:18056,嚴重性:20,狀態:5。日期時間 spid# 用戶端無法重複使用 spid #的會話,該會話已針對連接池重設。 失敗識別碼是 #。 此錯誤可能是由先前的操作失敗所造成。 檢查錯誤記錄,看看是否在此錯誤訊息前立即發生失敗的操作。
注意: 這個問題不會在第一次連接至包含的資料庫時發生。 不過,所有連續的嘗試都會發生這個問題。
解決方案
此問題最初是在 SQL Server 的後續累積更新中修正。
SQL Server 2014 的累積更新1 /en-us/help/2931693
SQL Server 2012 SP1 的累積更新7 /en-us/help/2894115
每個新的 SQL Server 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 查看 SQL Server 的最新累計更新:
狀態
Microsoft 已確認<適用於>一節中所列的 Microsoft 產品確實有上述問題。
其他相關資訊
此更新也修正下列內建函數傳回使用者 SID,而不是使用者名稱的另一個問題:
-
SUSER_SNAME
-
SUSER_NAME
-
SYSTEM_USER
注意: 此更新可確保這些函數總是傳回使用者名稱,不論是否使用包含的資料庫。
參考
請參閱 Microsoft 用於描述軟體更新的 術語 。