ログインの成功を妨げるエラーがサーバーで発生した場合、クライアントは次のエラーメッセージを表示します。
Msg 18456, Level 14, State 1, Server <server name>, Line 1
Login failed for user '<user name>'
- これは通常、指定したサーバー名で接続要求を正常に受信したが、サーバーがさまざまな理由でアクセスを許可できず、エラー18456をスローすることを意味します。
- このeventIDは、状態1も提供する場合がありますが、サーバーのログを確認できない限り、セキュリティ上の理由からエラーは状態1に変換されるため、実際にはそれほど有用ではありません。
- Microsoftは非常に便利なメッセージボックスを提供していないため、エラーが発生する理由を以下に示します。
無効なユーザーID: SQL Serverは、取得しようとしているサーバーで指定されたUserIDを見つけることができません。最も一般的な原因は、このuserIDがサーバーへのアクセスを許可されていないことですが、これは単純なタイプミスであるか、誤って別のサーバーに接続しようとしている可能性があります(通常、複数のサーバーを使用している場合)
無効なパスワード: パスワードが間違っているか、タイプミスです。このユーザー名は、サーバーごとに異なるパスワードを持つことができることに注意してください。
あまり一般的でないエラー: サーバーでuserIDが無効になっている可能性があります。 SQL認証用にWindowsログインが提供されました(Windows認証に変更してください。SSMSを使用する場合、このオプションを使用するには別のユーザーとして実行する必要がある場合があります)。パスワードの有効期限が切れている可能性があり、おそらく他のいくつかの理由があります…。
18456状態1の説明: 通常、Microsoft SQL Serverはエラー状態1を表示しますが、これは実際には18456エラーがあること以外は何も意味しません。状態1は、システムを保護するために実際の状態を非表示にするために使用されます。これは私には理にかなっています。以下は、すべての異なる状態のリストです。正確な状態を取得する方法の詳細については、SQL Server 2005の「ログインに失敗しました」(エラー18456)エラーメッセージについてを参照してください。
SQL認証が有効になっていません: SQL Serverインスタンスで初めてSQLログインを使用する場合、サーバーのプロパティ(セキュリティセクション)でWindows認証(のみ)が設定されているため、エラー18456が頻繁に発生します。
サーバーのプロパティにアクセスするには、-SQL Server Management Studioを開き、オブジェクトエクスプローラーペインに移動します(表示されない場合はビューを使用します)。-接続ボタンを使用して、サーバーのデータベースエンジンに接続します。接続すると、オブジェクトエクスプローラーに表示されます。-サーバーを右クリックし、プロパティをクリックします。 [サーバーのプロパティ]ウィンドウが表示されます。
SQLログインが失敗する原因となる可能性のある以下のスクリーンショットを参照してください
サーバー認証をSQLServerWindows認証に設定する必要があります
このエラーを解決するには、SQLServer2005を搭載したコンピューターで以下の手順に従います。
- オペレーティングシステムでSQLServer2008と同じユーザー名とパスワードを持つ管理者権限を持つ新しいユーザーを作成します。
- SQL Serverデータベースで、DatabaseNode>>セキュリティ>>ログイン>>-[新しいユーザーの作成]を展開して新しいユーザーを作成し、[Windows認証]ラジオボタンを選択してこの新しいユーザーを追加します。 -このユーザーは、オペレーティングシステムのユーザーログインである選択したWindows認証によってのみ追加できます。
- Windows認証を使用してSQLServer2008からSQLServer2005に接続するときに、上記の2つの手順を完了すると、正常に接続されます。
直し方?このリンクビデオ
出典>