デフォルトでは、ログイン失敗のエラーメッセージは、ログイン資格情報の不一致により、サーバーによってクライアントユーザー接続が拒否されただけです。チェックする可能性がある最初のタスクは、そのユーザーがそのSQL Serverインスタンスおよび関連するデータベースに対する関連する特権も持っているかどうかを確認することです。明らかに、必要な権限が設定されていない場合は、そのユーザーログインに関連する権限を付与することにより、この問題を修正する必要があります。
そのユーザーがデータベースとサーバーに関連する許可を持っている場合、サーバーがそのログインの資格情報の問題に遭遇すると、SQL Serverに認証を戻すことができなくなりますが、クライアントは次のエラーメッセージを受け取ります。
Msg 18456, Level 14, State 1, Server <ServerName>, Line 1
Login failed for user '<Name>'
エラーメッセージを見ると、これはレベルと状態を理解するのに説明的ではないと思われます。デフォルトでは、ログインの認証における問題の性質に関係なく、オペレーティングシステムエラーは「状態」を1と表示します。したがって、さらに調査するには、関連するSQL Serverインスタンスのエラーログを調べて、このエラーの重大度と状態の詳細を確認する必要があります。ログの対応するエントリは次のようになります。
2007-05-17 00:12:00.34 Logon Error: 18456, Severity: 14, State: 8.
or
2007-05-17 00:12:00.34 Logon Login failed for user '<user name>'.
上で定義したように、エラーの重大度と状態の列は、問題の原因の正確な反映を見つけるための鍵となります。上記の状態のエラー番号8は、パスワードの不一致による認証の失敗を示します。Books onlineの参照:デフォルトでは、重大度が19未満のユーザー定義メッセージは、発生時にMicrosoft Windowsアプリケーションログに送信されません。したがって、重大度が19未満のユーザー定義メッセージは、SQL Serverエージェントアラートをトリガーしません。
SQL Server Protocols(Dev.team)のプログラムマネージャーであるSung Leeが、エラー状態の説明に関する詳細情報をまとめました。一般的なエラー状態とその説明を次の表に示します。
ERROR STATE ERROR DESCRIPTION
------------------------------------------------------------------------------
2 and 5 Invalid userid
6 Attempt to use a Windows login name with SQL Authentication
7 Login disabled and password mismatch
8 Password mismatch
9 Invalid password
11 and 12 Valid login but server access failure
13 SQL Server service paused
18 Change password required
Well I'm not finished yet, what would you do in case of error:
2007-05-17 00:12:00.34 Logon Login failed for user '<user name>'.
そのSQL Serverインスタンスのエラーログから、重大度または状態レベルが定義されていないことがわかります。したがって、次のトラブルシューティングオプションは、イベントビューアのセキュリティログを確認することです[スクリーンショットが見つからないため、編集してください。
アイデア、興味深いイベントのイベントログを見てください]。