Windowsエラー
 Computer >> コンピューター >  >> トラブルシューティング >> Windowsエラー

SQL Server エラー 18456(ログイン失敗)の原因と対処法まとめ

SQL Server に接続しようとした際に表示される エラー 18456「ログインに失敗しました」は、サーバーが接続の認証に失敗したことを意味します。主な原因としては、SQL Server に管理者権限が付与されていない、あるいはサーバーの設定で TCP/IP プロトコルが無効になっていることなどが挙げられます。

この問題は、ユーザーがローカルまたはリモートの SQL Server へ接続を試みた際に発生し、エラー状態(State)によって詳細な原因が異なる場合があります。

SQL Server エラー 18456(ログイン失敗)の原因と対処法まとめ

トラブルシューティング前の確認事項

本格的な対処に入る前に、以下の基本的な項目を確認しておきましょう。

  • サーバー・クライアントPC・ネットワーク上のコンピューターを再起動するだけで問題が解消することがあります。
  • ユーザー名とパスワードが正しく入力されているか確認してください(アドレス欄からのコピー&ペーストではなく、手入力で検証するのが確実です)。
  • データベース名にタイプミスがないか確認し、設定ファイルも最新の内容に更新されているかチェックしましょう。
  • 次のクエリでアカウントのロック解除を試すと問題が解決する場合があります。
    ALTER LOGIN [ユーザー名] WITH PASSWORD = 'パスワード' UNLOCK;
  • SQL Server のエラーログに不審な記録が多数残っている場合、ブルートフォース攻撃などを受けていないかを確認してください。
  • サーバーとクライアント双方のシステム時刻(クロック)が正しく設定されているかも見落とされがちなポイントです。時刻のずれにより認証が失敗することがあります。

SQL Server を管理者として起動し、UAC を無効化する

SQL Server が操作の実行に必要な昇格された権限を持っていない場合、エラー 18456 が発生することがあります。管理者として SQL Server を起動する、あるいはサーバー側で UAC(ユーザーアカウント制御)を無効化することで問題が解消する可能性があります。

SQL Server Management Studio を管理者として実行する

  1. Windows のスタートメニューを開き、「SQL Server Management Studio」と入力して検索します。
  2. SSMS を右クリックし、「管理者として実行」を選択します。SQL Server エラー 18456(ログイン失敗)の原因と対処法まとめ
  3. UAC の確認画面が表示されたら「はい」をクリックし、エラー 18456 が解消されたかどうかを確認します。
  4. 改善しない場合は、サーバーマシンで UAC を無効化してみてください。

SQL Server をシングルユーザーモードで起動する

管理者権限でログインできない状況では、シングルユーザーモード(-m パラメータ)で起動することで復旧できる場合があります。

  1. Windows のスタートメニューから「SQL Server 構成マネージャー」を開きます。
  2. 「SQL Server のサービス」タブ内の SQL Server サービス右クリックし、「プロパティ」を選択します。SQL Server エラー 18456(ログイン失敗)の原因と対処法まとめ
  3. スタートアップ パラメーター」タブを開き、パラメーター指定ボックスに次のように入力します。
    -m
  4. 追加」をクリックし、変更を「適用」します。SQL Server エラー 18456(ログイン失敗)の原因と対処法まとめ
  5. SQL Server サービスを右クリックし、「再起動」を実行します。SQL Server エラー 18456(ログイン失敗)の原因と対処法まとめ
  6. 再度 SSMS を「管理者として実行」で起動します。
  7. 管理者として SQL Server に接続できるか確認します。
  8. 接続できたら、ドメインアカウントを SQL Server に追加し、SysAdmin(sysadmin)ロールを割り当てます。
  9. SQL Server 構成マネージャーに戻り、「スタートアップ パラメーター」タブから -m パラメーターを削除します。
  10. 最後に SQL Server サービスを再起動し、通常どおり動作するか確認してください。

それでも問題が解決しない場合は、スタートアップパラメーターやデータファイルのパス設定が正しいか確認してください。さらに、使用しているユーザーアカウントが対象データベースやレポーティングサービスに対して必要な権限を持っているかも見直してみましょう。

SQL Server 構成マネージャーで TCP/IP プロトコルを有効化する

ネットワーク経由でデータベースへアクセスするために必須となる TCP/IP プロトコルが構成マネージャーで無効になっていると、認証が行えずエラー 18456 が発生します。TCP/IP を有効化することで問題が解決する可能性があります。

  1. Windows のスタートメニューで「Microsoft SQL Server」(バージョン名付きのフォルダです。少しスクロールすると見つかる場合があります)を展開します。
  2. SQL Server 構成マネージャー」を開き、UAC の確認画面では「はい」をクリックします。
  3. 左ペインで「SQL Server ネットワークの構成」を展開し、対象のサーバー/インスタンス名の「プロトコル」を選択します。
  4. 右ペインで「TCP/IP」をダブルクリックし、「有効」のドロップダウンで「はい」を選択します。SQL Server エラー 18456(ログイン失敗)の原因と対処法まとめ
  5. 変更を「適用」します。SQL Server エラー 18456(ログイン失敗)の原因と対処法まとめ
  6. 続いて Windows のスタートメニューで「サービス」と入力し、検索結果を右クリックして「管理者として実行」を選択します。SQL Server エラー 18456(ログイン失敗)の原因と対処法まとめ
  7. 対象の SQL Server サービス(サーバー名付き)を右クリックし、「再起動」を実行します。SQL Server エラー 18456(ログイン失敗)の原因と対処法まとめ
  8. エラー 18456 が解消されたかどうかを確認します。

それでも解決しない場合は、SQL Server の正しいポート番号に接続しているか確認してください。特に複数のサーバーインスタンスが稼働している環境では、ポートの指定ミスが原因となることがあります。

SQL Server の認証モードを変更する

認証方式の設定が実際のログイン方法と一致していない場合(例:サーバーが Windows 認証のみに設定されているのに、SQL Server 認証でログインしようとしているなど)、エラー 18456 が表示されます。この場合は認証モードの変更が有効です。作業前に、現在のユーザー(例:SA アカウント)のログイン状態が「有効」になっていることを確認してください。

  1. SSMS の「オブジェクト エクスプローラー」で対象のサーバー右クリックし、「プロパティ」を選択します。
  2. 左ペインで「セキュリティ」ページを開き、右ペインで「SQL Server 認証モードと Windows 認証モード」(逆のケースでは Windows 認証モード)を選択します。SQL Server エラー 18456(ログイン失敗)の原因と対処法まとめ
  3. 変更を「適用」した後、オブジェクト エクスプローラーでサーバーを右クリックします。
  4. 再起動」を選択し、再起動完了後にエラー 18456 なしでデータベースへ接続できるか確認します。

そもそも SQL Server にログインできない場合は、PsExec(Sysinternals ツール)をインストールし、管理者権限のコマンドプロンプトで以下を実行すると、SYSTEM アカウントとして SSMS を起動できます。

psexec.exe -i -s ssms.exe

これにより SQL Server のセットアップ時に使用したアカウントで設定変更が可能になります。あわせて SA アカウントが無効化されていないことも確認しておきましょう。

SA アカウントを有効化してパスワードをリセットする

SQL Server にまったく接続できない場合、SA(システム管理者)アカウントを有効化し、パスワードをリセットすることで問題が解決することがあります。

  1. SSMS を起動し(ドメイン管理者アカウントが必要な場合があります)、左ペインの「セキュリティ」を展開します。
  2. ログイン」を展開し、「sa」をダブルクリックして開きます。SQL Server エラー 18456(ログイン失敗)の原因と対処法まとめ
  3. 新しいパスワードを入力して確認欄にも同じものを入力します(必ず強固なパスワードを使用してください)。
  4. サーバー ロール」タブを開き、以下のロールが選択されていることを確認します。
    public
    
    sysadmin
    SQL Server エラー 18456(ログイン失敗)の原因と対処法まとめ
  5. 状態」タブを開き、右ペインの「ログイン」設定を「有効」に変更します。SQL Server エラー 18456(ログイン失敗)の原因と対処法まとめ
  6. 変更を「適用」し、Windows のスタートメニューを開きます。
  7. サービス」と入力して検索結果を右クリックします。
  8. 管理者として実行」を選択し、SQL Server サービスまで移動します。
  9. サービスを右クリックして「再起動」を実行します。
  10. 再起動後、エラー 18456 が解消されたかどうかを確認します。

新しいログインを作成し、Reporting Services を再起動する

どのアカウントでもデータベースに接続できない場合は、新規ログインの作成と Reporting Services(レポート サービス)の再起動が有効なことがあります。

  1. SSMS を起動し、「セキュリティ」ノードを展開します。
  2. ログイン」を展開し、右クリックします。
  3. 新しいログイン」を選択し、必要な資格情報を入力します(SQL Server 認証を使う場合はログイン名にコンピューターアカウントを指定します)。SQL Server エラー 18456(ログイン失敗)の原因と対処法まとめ
  4. 次回のログインでパスワード変更が必要」のチェックを外し、既定のデータベースを選択します。
  5. サーバー ロール」タブで「public」ロールを選択します。
  6. ユーザー マッピング」タブで対象のデータベースにチェックを入れ、「db_owner」ロールを選択します。SQL Server エラー 18456(ログイン失敗)の原因と対処法まとめ
  7. 変更を「適用」し、Windows のスタートメニューを開きます。
  8. サービス」と入力し、検索結果を右クリックして「管理者として実行」を選択します。
  9. SQL Server Reporting Services」を右クリックし、「再起動」を実行します。SQL Server エラー 18456(ログイン失敗)の原因と対処法まとめ
  10. データベースに再接続し、エラー 18456 が解消されたかどうかを確認します。

問題が解決したら、BUILTIN\Administrators グループにユーザーを作成しておくと、そのユーザーで SQL Server を管理できます。また、バックアップからデータベースを復元した場合は、古いユーザーエントリによる不整合を避けるため、ユーザーを一度削除して再登録するのがおすすめです。

さらに、別のユーザーとして SQL Server を実行したい場合は、Windows の検索ボックスで Microsoft SQL Server を検索し、Shift + 右クリックから「別のユーザーとして実行」を選択してください。加えて、Azure Data Studio を使って SQL Server に接続すると、問題が回避できるケースもあります。

  1. OBSの「サーバーへの接続に失敗しました」エラーを解決する9つの方法【Windows 10】

    Open Broadcaster Software(OBS)は、ライブ配信や動画録画のためのオープンソースソフトウェアです。無料で利用できることから、世界で最も人気のあるストリーミングエンコーダーのひとつとされています。開発者コミュニティによって支えられており、Windows、macOS、BSD、Linuxといった幅広いプラットフォームに対応しています。また、ゲーム実況者がチュートリアルやプレゼンテーション用の画面キャプチャを共有する際にもよく使われています。OBSは多彩な音声・映像ソースを提供しており、クリエイティブな配信コンテンツの制作をサポートします。 しかし、OBSを使用していると「サ

  2. ポケモンGOでログインできない・認証エラーが出る時の対処法9選

    ポケモンGOは、Niantic社が2016年にリリースしたAR(拡張現実)スマホゲームです。AndroidとiOS向けに提供され、世界中で絶大な人気を誇る作品となっています。ポケモンGOはオンライン状態で、かつアカウントにログインしている必要があるため、オフラインでは起動できません。しかし一部のユーザーからは「ログインに失敗しました」というエラーが表示されるとの報告があり、特に長期间ブランク後に復帰したプレイヤーの間で頻発しています。また「認証に失敗しました(Failed to Authenticate)」というエラーが出るケースもあります。本記事では、ポケモンGOのログインエラーを解消する