トラブルシューティング : システム管理者がロックアウトされた場合の SQL Server への接続

このトピックでは、システム管理者が SQL Server データベース エンジンへのアクセスを復旧する方法について説明します。システム管理者は、次のいずれかの理由で SQL Server のインスタンスにアクセスできなくなることがあります。

  • sysadmin 固定サーバー ロールのメンバーであるログインがすべて、誤って削除された。

  • sysadmin 固定サーバー ロールのメンバーである Windows グループがすべて、誤って削除された。

  • sysadmin 固定サーバー ロールのメンバーであるログインの使用者が退社したか不在である。

  • sa アカウントが無効になっているか、パスワードが不明である。

アクセスを復旧する 1 つの方法は、SQL Server を再インストールし、すべてのデータベースを新しいインスタンスにアタッチすることです。この解決方法は時間がかかるうえ、ログインを復旧するには、バックアップから master データベースを復元する必要が生じる場合があります。master データベースのバックアップが古いと、一部の情報が含まれていない可能性があります。master データベースのバックアップが新しいと、以前のインスタンスと同じログインが含まれているために管理者がロックアウトされたままになる可能性があります。

解決方法

-m オプションまたは -f オプションを使用して、SQL Server のインスタンスをシングル ユーザー モードで起動します。これにより、コンピューターのローカル Administrators グループのメンバーがすべて、固定サーバー ロール sysadmin のメンバーとして SQL Server のインスタンスに接続できるようになります。

注意

シングル ユーザー モードで SQL Server のインスタンスを起動する場合は、まず SQL Server エージェント サービスを停止してください。そうしないと、SQL Server エージェントによって先に接続が行われ、2 番目のユーザーとして接続できなくなる場合があります。

sqlcmd または SQL Server Management Studio で -m オプションを使用すると、接続を特定のクライアント アプリケーションに限定できます。たとえば、-m"sqlcmd" を使用すると、接続が、sqlcmd クライアント プログラムとして識別される必要がある単一の接続に限定されます。このオプションは、SQL Server をシングル ユーザー モードで起動するときに、その唯一の接続を不明なクライアント アプリケーションによって使用されていた場合に使用します。Management Studio のクエリ エディターを使用して接続するには、-m"Microsoft SQL Server Management Studio - Query" を使用します。

重要な注意事項重要

このオプションをセキュリティ機能として使用しないでください。クライアント アプリケーションの名前はクライアント アプリケーションによって接続文字列の一部として指定されるため、本当の名前が指定されるとは限りません。

SQL Server をシングル ユーザー モードで起動する詳細な手順については、「サーバーのスタートアップ オプションを構成する方法 (SQL Server 構成マネージャ)」を参照してください。