現象
次のような状況で問題が発生します。
-
Microsoft SQL Server 2012 または SQL Server 2014 に データベースが含まれています。
-
アプリケーションは、 接続プールを有効にして、含まれているデータベースに接続しようとします。
-
アプリケーションは、SQL Server 認証を使用します。
このシナリオでは、アプリケーションがデータベースに接続できない場合があります。 さらに、SQL Server エラーログに次のようなエラーが表示されます。
日付 時刻 ログオンエラー: 18456、レベル:14、状態: 5。ユーザー ' SID ' へのログイン失敗の日付時刻。 理由: 指定した名前に一致するログインが見つかりませんでした [Client:]datetime spid# エラー: 18056、Severity:20、State: 5。日付/時刻spid#クライアントは、接続プール用にリセットされた spid #とのセッションを再利用できませんでした。 エラー ID は #です。 このエラーは、以前の操作が失敗したために発生した可能性があります。 このエラーメッセージの直前に失敗した操作のエラーログを確認します。
注: この問題は、包含データベースへの最初の接続が発生したときには発生しません。 ただし、この問題は、以降のすべての試行で発生します。
解決方法
この問題は、SQL Server の次の累積的な更新プログラムで最初に修正されました。
SQL Server 2014 の累積更新プログラム1 /en-us/help/2931693
SQL Server 2012 SP1 の累積更新プログラム7 /en-us/help/2894115
SQL Server 用の新しい累積更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正が含まれています。 SQL Server の最新の累積的な更新プログラムを確認します。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
詳細情報
この更新プログラムでは、次の組み込み関数がユーザー名ではなくユーザー SID を返す別の問題も修正されます。
-
SUSER_SNAME
-
SUSER_NAME
-
SYSTEM_USER
注: この更新プログラムでは、含まれているデータベースを使用しているかどうかにかかわらず、これらの関数によって常にユーザー名が返されるようになります。
参照情報
Microsoft がソフトウェアの更新について説明する 用語 については、こちらを参照してください。