サーバーの認証モードの変更

適用対象: SQL Server

この記事では、SQL Server で SQL Server Management Studio または Transact-SQL を使用して、サーバーの認証モードを変更する方法について説明します。 SQL Server データベース エンジン はインストール中に、 [Windows 認証モード] または [SQL Server 認証モードと Windows 認証モード] のいずれかに設定されます。 インストール後は、認証モードをいつでも変更できます。

インストール中に [Windows 認証モード] を選択した場合、sa ログインは無効となり、パスワードはセットアップによって割り当てられます。 後で認証モードを [SQL Server 認証モードと Windows 認証モード] に変更しても、sa ログインは無効のままです。 sa ログインを使用するには、ALTER LOGIN ステートメントを使用して、 sa ログインを有効にし、新しいパスワードを割り当ててください。 sa ログインは、SQL Server 認証を使用しないとサーバーに接続できません。

解説

sa アカウントは、よく知られた SQL Server アカウントで、悪意のあるユーザーの攻撃対象となることが少なくありません。 sa アカウントは、アプリケーションで必要とされない限り、有効にしないでください。 sa ログインには、複雑なパスワードを使用することが重要です。

SSMS または Transact-SQL を使用して sa ログインを有効にすることができます。

  1. オブジェクト エクスプローラーで、[セキュリティ]、[ログイン] の順に展開し、[sa] を右クリックして [プロパティ] を選択します。

  2. [全般] ページで、sa ログインのパスワード作成と確認が必要になる場合があります。

  3. [状態] ページで、[ログイン][有効] を選択し、[OK] を選択します。

SQL Server Management Studio で認証モードを変更する

  1. SQL Server Management Studio (SSMS) のオブジェクト エクスプローラーで、サーバーを右クリックし、[プロパティ] を選択します。

  2. [セキュリティ] ページの [サーバー認証]で、新しいサーバーの認証モードを選択し、[OK] を選択します。

  3. [SQL Server Management Studio] ダイアログ ボックスで、SQL Server の再起動が必要であるというメッセージに対して [OK] を選択します。

  4. オブジェクト エクスプローラーでサーバーを右クリックし、[再起動] を選択します。 SQL Server エージェントも再起動する必要があります (実行されている場合)。

注意事項

次の例では、拡張ストアド プロシージャを使用して、サーバー レジストリを変更します。 レジストリの変更の方法を誤った場合、深刻な問題が発生することがあります。 これらの問題が起きた場合、オペレーティング システムを再インストールしなければならない場合があります。 Microsoft は、これらの問題を解決できることを保証できません。 レジストリはユーザー自身の責任において変更してください。

認証モードを変更するために必要なアクセス許可は、sysadmin または CONTROL SERVER です。

A. 認証を Windows のみに変更する

  1. サーバーの認証を Windows のみに変更する:

    USE [master]
    GO
    EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE',
         N'Software\Microsoft\MSSQLServer\MSSQLServer',
         N'LoginMode', REG_DWORD, 1;
    GO
    
  2. sa アカウントを無効にする:

    USE [master]
    GO
    
    ALTER LOGIN sa DISABLE;
    GO
    

B. 認証を混合モードに変更する (Windows と SQL)

  1. sa アカウントを有効にし、強力なパスワードを設定する:

    USE [master]
    GO
    
    ALTER LOGIN sa ENABLE;
    GO
    
    ALTER LOGIN sa WITH PASSWORD = '<enterStrongPasswordHere>';
    GO
    
  2. サーバーの認証を混合モードに変更する:

    EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE',
        N'Software\Microsoft\MSSQLServer\MSSQLServer',
        N'LoginMode', REG_DWORD, 2;
    GO