ALTER MASTER KEY (Transact-SQL)

対象者:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analyticsアナリティクスプラットフォームシステム(PDW)Microsoft FabricにおけるSQLデータベース

データベース マスター キーのプロパティを変更します。

Transact-SQL 構文表記規則

Syntax

SQL Server の構文

-- Syntax for SQL Server
ALTER MASTER KEY <alter_option>

<alter_option> ::=
    <regenerate_option> | <encryption_option>

<regenerate_option> ::=
    [ FORCE ] REGENERATE WITH ENCRYPTION BY PASSWORD = 'password'

<encryption_option> ::=
    ADD ENCRYPTION BY { SERVICE MASTER KEY | PASSWORD = 'password' }
    |
    DROP ENCRYPTION BY { SERVICE MASTER KEY | PASSWORD = 'password' }

Microsoft FabricにおけるAzure SQL DatabaseおよびSQL Databaseの構文

-- Syntax for Azure SQL Database
-- Note: DROP ENCRYPTION BY SERVICE MASTER KEY is not supported on Azure SQL Database.

ALTER MASTER KEY <alter_option>

<alter_option> ::=
    <regenerate_option> | <encryption_option>

<regenerate_option> ::=
    [ FORCE ] REGENERATE WITH ENCRYPTION BY PASSWORD = 'password'

<encryption_option> ::=
    ADD ENCRYPTION BY { SERVICE MASTER KEY | PASSWORD = 'password' }
    |
    DROP ENCRYPTION BY { PASSWORD = 'password' }

Azure Synapse Analytics および Analytics Platform System (PDW) の構文

-- Syntax for Azure Synapse Analytics and Analytics Platform System

ALTER MASTER KEY <alter_option>

<alter_option> ::=
    <regenerate_option> | <encryption_option>

<regenerate_option> ::=
    [ FORCE ] REGENERATE WITH ENCRYPTION BY PASSWORD ='password'

<encryption_option> ::=
    ADD ENCRYPTION BY SERVICE MASTER KEY
    |
    DROP ENCRYPTION BY SERVICE MASTER KEY

Arguments

PASSWORD ='password'

データベース マスター キーの暗号化または暗号化解除に使用するパスワードを指定します。 password は、Windows のパスワード ポリシーが SQL Server のインスタンスを実行するコンピューターに要求する条件を満足する必要があります。

Remarks

REGENERATE オプションを指定すると、データベース マスター キーと、それによって保護されるすべてのキーが再作成されます。 これらのキーは、最初に元のマスター キーで暗号化解除され、次に新しいマスター キーで暗号化されます。 このリソースを集中的に使用する操作は、マスター キーが侵害されない限り、需要が低い期間中にスケジュールする必要があります。

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

FORCE オプションを使用すると、マスター キーが使用できない場合や、サーバーが暗号化されたすべての秘密キーを復号化できない場合でも、キーの再生成が続行されます。 マスターキーが開けない場合は、 RESTORE MASTER KEY 文を使ってバックアップからマスターキーを復元してください。 FORCE オプションは、マスター キーを取得できないか、暗号化解除が失敗する場合にのみ使用してください。 取り返しのつかないキーによってのみ暗号化された情報は失われます。

「 SERVICE MASTER KEY による暗号化解除」オプションは、サービスマスターキーによるデータベースマスター鍵の暗号化を解除します。

SERVICE MASTER KEYによる暗号化のドロップはAzure SQL Databaseではサポートされていません。

SERVICE MASTER KEYによる暗号化を追加すると、マスターキーのコピーがサービスのマスターキーで暗号化され、現在のデータベースとマスターの両方に保存されます。

Permissions

データベースに対する CONTROL 権限が必要です。 データベース マスター キーがパスワードで暗号化されている場合は、そのパスワードに関する知識も必要です。

Examples

次の例では、AdventureWorks の新しいデータベースのマスター キーを作成し、暗号化階層でこのマスター キーの下位にあるキーを再暗号化します。 <secure password>を強力な一意のパスワードに置き換えます。

USE AdventureWorks2022;
ALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD = '<secure password>';
GO

例: Azure Synapse Analytics、Analytics Platform System (PDW)

次の例では、AdventureWorksPDW2012 の新しいデータベースのマスター キーを作成し、暗号化階層でこのマスター キーの下位にあるキーを再暗号化します。 <secure password>を強力な一意のパスワードに置き換えます。

USE master;
ALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD = '<secure password>';
GO