次の方法で共有


ALTER MASTER KEY (Transact-SQL)

適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric SQL Database

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

Transact-SQL 構文表記規則

構文

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 データベースの構文

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

引数

PASSWORD ='password'

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

解説

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 オプションは、マスター キーを取得できないか、暗号化解除が失敗する場合にのみ使用してください。 取り返しのつかないキーによってのみ暗号化された情報は失われます。

DROP ENCRYPTION BY SERVICE MASTER KEY オプションを指定すると、データベース マスター キーの暗号化がサービス マスター キーによって解除されます。

DROP ENCRYPTION BY SERVICE MASTER KEY は、Azure SQL Database ではサポートされていません。

ADD ENCRYPTION BY SERVICE MASTER KEY を指定すると、マスター キーのコピーがサービス マスター キーを使用して暗号化され、現在のデータベースおよびマスターの両方に格納されます。

アクセス許可

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

次の例では、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