18456: Login failed for user(ユーザーのログイン失敗)
SQL Server意味
認証時にログイン試行が拒否された。ユーザー名/パスワードの誤り、アカウントの無効化、またはユーザーにデータベースへのアクセス権がない可能性がある。
原因
パスワードの誤り、存在しないログイン、無効化/ロックされたアカウント、Windows 認証のみ有効な状態での SQL ログインの使用、または既定データベースへのアクセス権がない。エラーテキストの State コードが真の原因を示す (State 5: ログインが存在しない、State 7: ログインが無効かつパスワードも誤り、State 8: パスワードの誤り (最も一般的)、State 18: パスワードの変更が必要、State 38: 指定されたデータベースを開けない、State 58: サーバーが Windows 認証のみのモードで SQL ログインを試行)。
対処方法
SQL Server エラーログの State 値から根本原因を特定する (セキュリティ上の理由で詳細はクライアントに送られない)。ユーザー名/パスワードを確認する。サーバーが 'SQL Server and Windows Authentication Mode' (混合モード) で動作していることを確認する。変更した場合はサービスを再起動する。対象データベースでのログインのユーザーマッピングとアクセス許可を確認する。
同じデータベースの他の項目
- 2627Violation of PRIMARY KEY / UNIQUE KEY constraint. Cannot insert duplicate key in object(PRIMARY KEY / UNIQUE KEY 制約違反)
- 2601Cannot insert duplicate key row in object with unique index. The duplicate key value is ...(一意インデックスに重複キー行を挿入できない)
- 547The INSERT/UPDATE/DELETE statement conflicted with the FOREIGN KEY / CHECK constraint(FOREIGN KEY / CHECK 制約との競合)
- 8152String or binary data would be truncated(文字列またはバイナリデータが切り詰められる)
- 2628String or binary data would be truncated in table, column ...; truncated value(文字列またはバイナリデータが切り詰められる (テーブル/列/値を表示))
- 1222Lock request time out period exceeded(ロック要求のタイムアウト期間を超過)
- 9002The transaction log for database is full due to ...(トランザクションログが満杯)