MSSQLSERVER_18456
詳細
製品名 |
SQL Server |
製品バージョン |
11.0 |
製品ビルド番号 |
11 |
イベント ID |
18456 |
イベント ソース |
MSSQLSERVER |
コンポーネント |
SQLEngine |
シンボル名 |
LOGON_FAILED |
メッセージ テキスト |
ユーザー '%.*ls' はログインできませんでした。 %.*ls |
説明
無効なパスワードまたはユーザー名を含む認証の失敗によって接続試行が拒否された場合、クライアントには "ユーザー '<user_name>' はログインできませんでした。 (Microsoft SQL Server、エラー: 18456)" のようなメッセージが返されます。
クライアントに返される追加情報には、次のようなものがあります。
"ユーザー '<user_name>' はログインできませんでした。 (.Net SqlClient Data Provider)"
------------------------------
"サーバー名: <computer_name>"
"エラー番号: 18456"
"重大度: 14"
"状態: 1"
"行番号: 65536"
次のメッセージが返されることもあります。
"メッセージ 18456、レベル 14、状態 1、サーバー <computer_name>、行 1"
"ユーザー '<user_name>' はログインできませんでした。"
エラーに関する追加情報
セキュリティ向上のために、クライアントに返されるエラー メッセージでは、認証エラーの性質を意図的に非表示にしています。 ただし SQL Server エラー ログでは、対応するエラーに、認証失敗条件と対応付けられるエラー状態が含まれています。 ログインできない理由を判断するには、エラー状態を次の一覧と比較してください。
状態 |
説明 |
---|---|
1 |
エラー情報を表示できません。 通常、この状態は、エラーの詳細情報を受け取る権限がないことを意味します。 詳細については、SQL Server 管理者に問い合わせてください。 |
2 |
ユーザー ID が無効です。 |
5 |
ユーザー ID が無効です。 |
6 |
SQL Server 認証で Windows ログイン名を使用しようとしました。 |
7 |
ログインが無効で、パスワードが正しくありません。 |
8 |
パスワードが正しくありません。 |
9 |
パスワードが無効です。 |
11 |
ログインは有効ですが、サーバー アクセスに失敗しました。 このエラーで考えられる原因の 1 つは、Windows ユーザーがローカル管理者グループのメンバーとして SQL Server へのアクセス権限を持っている一方で、Windows から管理者資格情報が提供されないことです。 接続するには、[管理者として実行] オプションを使用して接続プログラムを開始してから、その Windows ユーザーを特定のログインとして SQL Server に追加します。 |
12 |
ログインは有効なログインですが、サーバー アクセスに失敗しました。 |
18 |
パスワードを変更する必要があります。 |
エラー状態は他にも存在し、予期しない内部処理エラーを示します。
その他の特殊な原因
エラーの理由として、"SQL 認証を使用したログインに失敗しました。サーバーは、Windows 認証専用に構成されています。" が返されるのは、次の場合です。
サーバーが混合モード認証で構成され、ODBC 接続で TCP プロトコルを使用し、接続でセキュリティ接続を使用することが明示的に指定されていない場合。
サーバーが混合認証モードで構成され、ODBC 接続で名前付きパイプが使用され、クライアントで名前付きパイプを開くために使用された資格情報が自動的にユーザーの権限を借用するために使用され、接続でセキュリティ接続を使用することが明示的に指定されていない場合。
この問題を解決するには、接続文字列に TRUSTED_CONNECTION = TRUE を含めます。
使用例
この例では、認証エラー状態は 8 です。 これは、パスワードが正しくないことを示します。
日付 |
ソース |
メッセージ |
---|---|---|
2007-12-05 20:12:56.34 |
ログオン |
エラー: 18456、重大度: 14、状態: 8。 |
2007-12-05 20:12:56.34 |
ログオン |
ユーザー '<user_name>' はログインできませんでした。 [クライアント: <ip address>] |
注 |
---|
Windows 認証モードを使用して SQL Server をインストールし、後で SQL Server 認証モードと Windows 認証モードに変更すると、sa ログインは最初は無効になります。 これにより、状態 7 のエラー "ユーザー 'sa' はログインできませんでした。" が発生します。sa ログインを有効にするには、「サーバーの認証モードの変更」を参照してください。 |
ユーザーのアクション
SQL Server 認証を使用して接続しようとしている場合は、SQL Server が混合モード認証で構成されていることを確認します。
SQL Server 認証を使用して接続しようとしている場合は、SQL Server ログインが存在し、そのログインのスペルを正しく入力していることを確認します。
Windows 認証を使用して接続しようとしている場合は、正しいドメインに適切にログインしていることを確認します。
エラーが状態 1 を示している場合は、SQL Server 管理者に問い合わせてください。
管理者の資格情報を使用して接続する場合、[管理者として実行] オプションを使用してアプリケーションを起動します。 接続したら、Windows ユーザーを個別のログインとして追加します。
データベース エンジンで包含データベースがサポートされる場合、包含データベース ユーザーへの移行後にそのログインが削除されていないことを確認してください。
ローカルの SQL Server インスタンスに接続している場合、NT AUTHORITY\NETWORK SERVICE で実行されているサービスからの接続は、コンピューターの完全修飾ドメイン名を使用して認証する必要があります。 詳細については、「How To: ASP.NET で Network Service アカウントを使用してリソースにアクセスする方法」を参照してください。