Share via


ALTER SERVICE MASTER KEY (Transact-SQL)

SQL Server インスタンスのサービス マスター キーを変更します。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

ALTER SERVICE MASTER KEY 
    [ { <regenerate_option> | <recover_option> } ] [;]

<regenerate_option> ::=
    [ FORCE ] REGENERATE

<recover_option> ::=
    { WITH OLD_ACCOUNT = 'account_name' , OLD_PASSWORD = 'password' }
    |    
    { WITH NEW_ACCOUNT = 'account_name' , NEW_PASSWORD = 'password' }

引数

  • FORCE
    データが失われる可能性があっても、サービス マスター キーを再生成することを示します。詳細については、後の「SQL Server サービス アカウントの変更」を参照してください。

  • REGENERATE
    サービス マスター キーを再生成することを示します。

  • OLD_ACCOUNT ='account_name'
    古い Windows サービス アカウントの名前を指定します。

    注記注意

    このオプションは、互換性のために残されています。旧バージョン以外では使用しないでください。代わりに SQL Server 構成マネージャーを使用します。

  • OLD_PASSWORD ='password'
    古い Windows サービス アカウントのパスワードを指定します。

    注記注意

    このオプションは、互換性のために残されています。旧バージョン以外では使用しないでください。代わりに SQL Server 構成マネージャーを使用します。

  • NEW_ACCOUNT ='account_name'
    新しい Windows サービス アカウントの名前を指定します。

    注記注意

    このオプションは、互換性のために残されています。旧バージョン以外では使用しないでください。代わりに SQL Server 構成マネージャーを使用します。

  • NEW_PASSWORD ='password'
    新しい Windows サービス アカウントのパスワードを指定します。

    注記注意

    このオプションは、互換性のために残されています。旧バージョン以外では使用しないでください。代わりに SQL Server 構成マネージャーを使用します。

説明

サービス マスター キーは、リンク サーバーのパスワード、資格情報、またはデータベースのマスター キーの暗号化が最初に必要になったときに、自動的に生成されます。サービス マスター キーは、ローカル コンピューターのキーまたは Windows Data Protection API を使用して暗号化されます。この API では、SQL Server サービス アカウントの Windows 資格情報から派生するキーが使用されます。

サービス マスター キーの暗号化は、作成元のサービス アカウントによって、またはそのサービス アカウントの Windows 資格情報にアクセスできるプリンシパルによってのみ解除できます。したがって、SQL Server サービスが実行される Windows アカウントを変更した場合は、新しいアカウントでサービス マスター キーの暗号化を解除できるようにしておく必要があります。

SQL Server サービス アカウントの変更

SQL Server サービス アカウントを変更するには、SQL Server 構成マネージャーを使用します。SQL Server では、サービス アカウントの変更を管理するために、サービス マスター キーの冗長なコピーが保存されます。このコピーは、SQL Server サービス グループに与えられる必要な権限を持つコンピューター アカウントによって保護されます。コンピューターを再構築した場合、以前にサービス アカウントによって使用されていたのと同じドメイン ユーザーがサービス マスター キーを復元できますが、ローカル アカウントや、Local System、Local Service、Network Service の各アカウントでは復元できません。SQL Server を別のコンピューターに移動する場合は、バックアップと復元を使用してサービス マスター キーを移行してください。

REGENERATE 句では、サービス マスター キーが再生成されます。サービス マスター キーが再生成されると、SQL Server では古いサービス マスター キーで暗号化されていたすべてのキーの暗号化が解除され、それらのキーが新しいマスター キーで暗号化されます。ただし、この操作はリソースを大量に消費するため、キーのセキュリティに問題がある場合を除き、リソース要求が少ないときに実行するように考慮してください。暗号化解除が 1 つでも失敗した場合は、ステートメント全体が失敗します。

FORCE オプションを使用すると、キーの再生成処理で現在のマスター キーを取得できなかった場合や、そのマスター キーで暗号化されている秘密キーをすべて暗号化解除できなかった場合でも、再生成処理が続行されます。FORCE は、再生成が失敗し、RESTORE SERVICE MASTER KEY ステートメントを使用してもサービス マスター キーを復元できない場合にのみ使用してください。

注記注意

サービス マスター キーは、SQL Server 暗号化階層のルートになります。サービス マスター キーでは、直接または間接的に、そのツリー内にある他のすべてのキーとシークレットが保護されます。強制再生成で、依存関係のあるキーの暗号化を解除できなかった場合、そのキーで保護されているデータは失われます。

MACHINE KEY オプションを使用すると、マシン キーを使用して暗号化を追加または削除できます。

権限

サーバーに対する CONTROL SERVER 権限が必要です。

次の例では、サービス マスター キーを再生成します。

ALTER SERVICE MASTER KEY REGENERATE;
GO