システム管理者がロックアウトされた場合の SQL Server への接続Connect to SQL Server when system administrators are locked out

適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions) 適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions)

この記事では、システム管理者がロックアウトされた場合に、システム管理者として SQL Server データベース エンジンSQL Server Database Engine へのアクセスを回復する方法について説明します。システム管理者は、次のいずれかの理由で SQL ServerSQL Server のインスタンスにアクセスできなくなることがあります。This article describes how you can regain access to the SQL Server データベース エンジンSQL Server Database Engine as a system administrator if you've been locked out. A system administrator can lose access to an instance of SQL ServerSQL Server due to one of the following reasons:

  • sysadmin 固定サーバー ロールのメンバーであるログインがすべて、誤って削除された。All logins that are members of the sysadmin fixed server role have been removed by mistake.

  • sysadmin 固定サーバー ロールのメンバーである Windows グループがすべて、誤って削除された。All Windows Groups that are members of the sysadmin fixed server role have been removed by mistake.

  • sysadmin 固定サーバー ロールのメンバーであるログインの使用者が退社したか不在である。The logins that are members of the sysadmin fixed server role are for individuals who have left the company or who are not available.

  • sa アカウントが無効になっているか、パスワードが不明である。The sa account is disabled or no one knows the password.

解決方法Resolution

アクセスの問題を解決するには、SQL ServerSQL Server のインスタンスをシングル ユーザー モードで起動することをお勧めします。In order to resolve your access issue, we recommend that you start the instance of SQL ServerSQL Server in single-user mode. このモードでは、アクセスを回復しようとしている間に、他の接続が行われないようにします。This mode prevents other connections from occurring while you try to regain access. ここでは、SQL Server のインスタンスに接続し、sysadmin サーバー ロールにログインを追加できます。From here, you can connect to your instance of SQL Server and add your login to the sysadmin server role. この解決策に関する詳細な手順については、「ステップ バイ ステップの手順」セクションを参照してください。Detailed steps for this solution are provided in the step-by-step-instructions section.

コマンド ラインから -m または -f オプションを使用して、SQL ServerSQL Server のインスタンスをシングル ユーザー モードで起動できます。You can start an instance of SQL ServerSQL Server in single-user mode with either the -m or -f options from the command line. これにより、コンピューターのローカル Administrators グループのメンバーがすべて、固定サーバー ロール sysadmin のメンバーとして SQL ServerSQL Server のインスタンスに接続できるようになります。Any member of the computer's local Administrators group can then connect to the instance of SQL ServerSQL Server as a member of the sysadmin fixed server role.

シングル ユーザー モードでインスタンスを起動する場合は、まず SQL ServerSQL Server エージェント サービスを停止してください。When you start the instance in single-user mode, first stop the SQL ServerSQL Server Agent service. そうしないと、SQL ServerSQL Server エージェントが先に接続し、サーバーへの使用可能な接続のみを取得して、ログインをブロックする可能性があります。Otherwise, SQL ServerSQL Server Agent might connect first, taking the only available connection to the server and blocking you from logging in.

また、ログインできるようになる前に、不明なクライアント アプリケーションが使用可能な接続のみを取得してしまう場合もあります。It's also possible for an unknown client application to take the only available connection before you are able to log in. このような状況が発生しないようにするには、-m オプションの後にアプリケーション名を指定することで、指定したアプリケーションからの単一の接続に限定することができます。In order to prevent this from happening, you can use the -m option followed by an application name to limit connections to a single connection from the specified application. たとえば、-mSQLCMD を指定して SQL ServerSQL Server を開始すると、sqlcmd クライアント プログラムとして識別される単一の接続に限定されます。For example, starting SQL ServerSQL Server with -mSQLCMD limits connections to a single connection that identifies itself as the sqlcmd client program. Management StudioManagement Studio のクエリ エディターを使用して接続するには、-m"Microsoft SQL Server Management Studio - Query" を使用します。To connect through the Query Editor in Management StudioManagement Studio, use -m"Microsoft SQL Server Management Studio - Query".

重要

セキュリティ機能として -m をアプリケーション名と一緒に使用しないでください。Do not use -m with an application name as a security feature. クライアント アプリケーションは、接続文字列の設定を使用してアプリケーション名を指定するため、偽名を使って簡単になりすますことができます。Client applications specify the application name through the connection string settings, so it can easily be spoofed with a false name.

次の表は、コマンド ラインでインスタンスをシングル ユーザー モードで起動するさまざまな方法をまとめたものです。The following table summarizes the different ways to start your instance in single-user mode in the command line.

オプションOption 説明Description 使用する場合When to use
-m 単一の接続に限定しますLimits connections to a single connection 他のユーザーがインスタンスに接続しようとしていない場合、またはインスタンスへの接続に使用しているアプリケーション名がわからない場合。When there are no other users attempting to connect to the instance or you are not sure of the application name you are using to connect to the instance.
-mSQLCMD sqlcmd クライアント プログラムとして識別される必要がある単一の接続に限定しますLimits connections to a single connection that must identify itself as the sqlcmd client program sqlcmd でインスタンスに接続しようとしているときに、他のアプリケーションが使用可能な接続を取得できないようにする場合。When you plan to connect to the instance with sqlcmd and you want to prevent other applications from taking the only available connection.
-m"Microsoft SQL Server Management Studio - Query" Microsoft SQL Server Management Studio クエリ アプリケーションとして識別される必要がある単一の接続に限定します。Limits connections to a single connection that must identify itself as the Microsoft SQL Server Management Studio - Query application. Management StudioManagement Studio のクエリ エディターでインスタンスに接続しようとしているときに、他のアプリケーションが使用可能な接続のみを取得できないようにする場合。When you plan to connect to the instance through the Query Editor in Management StudioManagement Studio and you want to prevent other applications from taking the only available connection.
-f 単一の接続に限定し、インスタンスを最小構成で開始しますLimits connections to a single connection and starts the instance in minimal configuration 他の構成によって開始が妨げられている場合。When some other configuration is preventing you from starting.
     

SQL ServerSQL Server をシングル ユーザー モードで起動する詳細な手順については、「シングル ユーザー モードでの SQL Server の起動」を参照してください。For step-by-step instructions about how to start SQL ServerSQL Server in single-user mode, see Start SQL Server in Single-User Mode.

ステップ バイ ステップの手順Step by step instructions

以下の手順では、誤ってアクセスできなくなってしまった SQL Server ログインにシステム管理者権限を付与する方法について説明します。The following step-by-step instructions describe how to grant system administrator permissions to a SQL Server login that mistakenly no longer has access.

以下の手順では、次のことを想定しています。These instructions assume,

  • SQL ServerSQL Serverは Windows 8 以上で実行されている。running on Windows 8 or higher. それ以前のバージョンの SQL Server または Windows の場合、必要に応じて調整する必要があります。Slight adjustments for earlier versions of SQL Server or Windows are provided where applicable.

  • SQL Server Management StudioSQL Server Management Studio がコンピューターにインストールされている。is installed on the computer.

ローカル Administrators グループのメンバーとして Windows にログインしているときに、以下の手順を実行します。Perform these instructions while logged in to Windows as a member of the local administrators group.

  1. Windows の [スタート] メニューから SQL ServerSQL Server Configuration Manager のアイコンを右クリックし、 [管理者として実行] を選択して、管理者の資格情報を Configuration Manager に渡します。From the Windows Start menu, right-click the icon for SQL ServerSQL Server Configuration Manager and choose Run as administrator to pass your administrator credentials to Configuration Manager.

  2. SQL ServerSQL Server 構成マネージャーの左ペインで、 [SQL Server のサービス] を選択します。In SQL ServerSQL Server Configuration Manager, in the left pane, select SQL Server Services. 右ペインで、 SQL ServerSQL Serverインスタンスを探しますIn the right-pane, find your instance of SQL ServerSQL Server. (SQL ServerSQL Server の既定のインスタンスには、コンピューター名の後に (MSSQLSERVER) が付いています。(The default instance of SQL ServerSQL Server includes (MSSQLSERVER) after the computer name. 名前付きインスタンスは、[登録済みサーバー] に表示されているものと同じ名前が大文字表記で表示されます)。SQL ServerSQL Server インスタンスを右クリックし、 [プロパティ] をクリックします。Named instances appear in upper case with the same name that they have in Registered Servers.) Right-click the instance of SQL ServerSQL Server, and then click Properties.

  3. [起動時のパラメーター] タブの [起動時のパラメーターの指定] ボックスに、「-m」と入力し、 [追加] をクリックしますOn the Startup Parameters tab, in the Specify a startup parameter box, type -m and then click Add. (入力文字はダッシュの後に小文字の m です)。(That's a dash then lower case letter m.)

    注意

    以前のバージョンの SQL ServerSQL Server では、 [起動時のパラメーター] タブがない場合があります。その場合は、 [詳細設定] タブで、 [起動時のパラメーター] をダブルクリックします。For some earlier versions of SQL ServerSQL Server there is no Startup Parameters tab. In that case, on the Advanced tab, double-click Startup Parameters. パラメーターが小さいウィンドウに表示されます。The parameters open up in a very small window. 既存のパラメーターは、いずれも変更しないように注意してください。Be careful not to change any of the existing parameters. 最後に、新しいパラメーター ;-m を追加し、 [OK] をクリックしますAt the very end, add a new parameter ;-m and then click OK. (入力文字はセミコロンの後に小文字の m です)。(That's a semi-colon then a dash then lower case letter m.)

  4. [OK] をクリックし、再起動するためのメッセージが表示されたら、サーバー名を右クリックし、 [再起動] をクリックします。Click OK, and after the message to restart, right-click your server name, and then click Restart.

  5. SQL ServerSQL Server を再起動すると、サーバーはシングル ユーザー モードになります。After SQL ServerSQL Server has restarted, your server will be in single-user mode. SQL ServerSQL Server エージェントが実行されていないことを確認します。Make sure that SQL ServerSQL Server Agent is not running. 起動した場合、それが唯一の接続となります。If started, it will take your only connection.

  6. Windows の [スタート] メニューから、Management StudioManagement Studio を右クリックして、 [管理者として実行] を選択します。From the Windows Start menu, right-click the icon for Management StudioManagement Studio and select Run as administrator. これにより、管理者資格情報が SSMS に渡されます。This will pass your administrator credentials to SSMS.

    注意

    以前のバージョンの Windows では、 [管理者として実行] オプションはサブメニューとして表示されます。For earlier versions of Windows, the Run as administrator option appears as a sub-menu.

    構成によっては、SSMS が複数の接続の確立を試みます。In some configurations, SSMS will attempt to make several connections. SQL ServerSQL Server はシングル ユーザー モードなので、複数の接続は失敗します。Multiple connections will fail because SQL ServerSQL Server is in single-user mode. 実際のシナリオに基づいて、次のいずれかのアクションを実行します。Based on your scenario, perform one of the following actions.

    1. Windows 認証 (管理者の資格情報を含む) を使用してオブジェクト エクスプローラーと接続します。Connect with Object Explorer using Windows Authentication, which includes your Administrator credentials. [セキュリティ][ログイン] の順に展開し、自身のログインをダブルクリックします。Expand Security, expand Logins, and double-click your own login. [サーバー ロール] ページで、 [sysadmin] を選択し、 [OK] をクリックします。On the Server Roles page, select sysadmin, and then click OK.

    2. オブジェクト エクスプローラーではなく、Windows 認証 (管理者の資格情報を含む) を使用してクエリ ウィンドウと接続しますInstead of connecting with Object Explorer, connect with a Query Window using Windows Authentication (which includes your Administrator credentials). (この方法で接続できるのは、オブジェクト エクスプローラーと接続していない場合のみです)。sysadmin 固定サーバー ロールのメンバーである新しい Windows 認証ログインを追加するには、次のようなコードを実行します。(You can only connect this way if you did not connect with Object Explorer.) Execute code such as the following to add a new Windows Authentication login that is a member of the sysadmin fixed server role. 次の例では、CONTOSO\PatK という名前のドメイン ユーザーを追加します。The following example adds a domain user named CONTOSO\PatK.

      CREATE LOGIN [CONTOSO\PatK] FROM WINDOWS;  
      ALTER SERVER ROLE sysadmin ADD MEMBER [CONTOSO\PatK];  
      
    3. SQL ServerSQL Server を混合認証モードで実行している場合、Windows 認証 (管理者の資格情報を含む) を使用してクエリ ウィンドウと接続します。If your SQL ServerSQL Server is running in mixed authentication mode, connect with a Query Window using Windows Authentication (which includes your Administrator credentials). sysadmin 固定サーバー ロールのメンバーである新しい SQL ServerSQL Server 認証ログインを作成するには、次のようなコードを実行します。Execute code such as the following to create a new SQL ServerSQL Server authentication login that is a member of the sysadmin fixed server role.

      CREATE LOGIN TempLogin WITH PASSWORD = '************';  
      ALTER SERVER ROLE sysadmin ADD MEMBER TempLogin;  
      

      警告

      ************ は強力なパスワードと置き換えてください。Replace ************ with a strong password.

    4. SQL ServerSQL Server を混合認証モードで実行していて、 sa アカウントのパスワードをリセットする場合、Windows 認証 (管理者の資格情報を含む) を使用してクエリ ウィンドウと接続します。If your SQL ServerSQL Server is running in mixed authentication mode and you want to reset the password of the sa account, connect with a Query Window using Windows Authentication (which includes your Administrator credentials). 次の構文を使用して、 sa アカウントのパスワードを変更します。Change the password of the sa account with the following syntax.

      ALTER LOGIN sa WITH PASSWORD = '************';  
      

      警告

      ************ は強力なパスワードと置き換えてください。Replace ************ with a strong password.

  7. Management StudioManagement Studioを終了します。Close Management StudioManagement Studio.

  8. 以降のいくつかの手順では、SQL Server をマルチ ユーザー モードに戻します。These next few steps change SQL Server back to multi-user mode. SQL ServerSQL Server 構成マネージャーの左ペインで、 [SQL Server のサービス] を選択します。In SQL ServerSQL Server Configuration Manager, in the left pane, select SQL Server Services.

  9. 右ペインで、 SQL ServerSQL Serverインスタンスを右クリックし、 [プロパティ] をクリックします。In the right-pane, right-click the instance of SQL ServerSQL Server, and then click Properties.

  10. [起動時のパラメーター] タブの [既存のパラメーター] ボックスで、[ -m ] を選択し、 [削除] をクリックします。On the Startup Parameters tab, in the Existing parameters box, select -m and then click Remove.

    注意

    以前のバージョンの SQL ServerSQL Server では、 [起動時のパラメーター] タブがない場合があります。その場合は、 [詳細設定] タブで、 [起動時のパラメーター] をダブルクリックします。For some earlier versions of SQL ServerSQL Server there is no Startup Parameters tab. In that case, on the Advanced tab, double-click Startup Parameters. パラメーターが小さいウィンドウに表示されます。The parameters open up in a very small window. 前の手順で追加した ;-m を削除し、 [OK] をクリックします。Remove the ;-m which you added earlier, and then click OK.

  11. サーバー名を右クリックし、 [再起動] をクリックします。Right-click your server name, and then click Restart. シングル ユーザー モードで SQL ServerSQL Server を開始する前に、エージェントを停止している場合は、SQL ServerSQL Server エージェントを再起動してください。Make sure to start SQL ServerSQL Server Agent again if you stopped it before starting SQL ServerSQL Server in single-user mode.

これで、 sysadmin 固定サーバー ロールのメンバーであるアカウントの 1 つを使用して正常に接続できます。Now you should be able to connect normally with one of the accounts which is now a member of the sysadmin fixed server role.

参照See Also