ALTER SERVICE MASTER KEY (Transact-SQL)

適用対象: SQL ServerAzure SQL Managed Instance

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' }  

Note

SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。

引数

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

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

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

警告

このオプションは、互換性のために残されています。 使用しないでください。 代わりに SQL Server Configuration Manager を使用してください。

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

警告

このオプションは、互換性のために残されています。 使用しないでください。 代わりに SQL Server Configuration Manager を使用してください。

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

警告

このオプションは、互換性のために残されています。 使用しないでください。 代わりに SQL Server Configuration Manager を使用してください。

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

警告

このオプションは、互換性のために残されています。 使用しないでください。 代わりに SQL Server Configuration Manager を使用してください。

注釈

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

SQL Server 2012 (11.x) AES 暗号化アルゴリズムを使用してサービス マスター キー (SMK) とデータベース マスター キー (DMK) を保護します。 AES は、以前のバージョンで使用されていた 3DES よりも新しい暗号化アルゴリズムです。 データベース エンジン のインスタンスを SQL Server 2012 (11.x) にアップグレードした後で、マスター キーを AES にアップグレードするために SMK と DMK を再度生成する必要があります。 DMK を再作成する方法については、「ALTER MASTER KEY (Transact-SQL)」を参照してください。

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

別のコンピューターに SQL を移動する場合、同じサービス アカウントを使用して SMK の暗号化を解除する必要があります。SQL Server では、自動的に、コンピューター アカウントの暗号化が修復されます。

アクセス許可

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

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

ALTER SERVICE MASTER KEY REGENERATE;  
GO  

参照

RESTORE SERVICE MASTER KEY (Transact-SQL)
BACKUP SERVICE MASTER KEY (Transact-SQL)
暗号化階層