CREATE DATABASE ENCRYPTION KEY (Transact-SQL)

適用対象:SQL ServerAzure SQL Managed InstanceAnalytics Platform System (PDW)

データベースを透過的に暗号化するために使用する暗号化キーを作成します。 Transparent Data Encryption (TDE) の詳細については、「Transparent Data Encryption (TDE)」を参照してください

Transact-SQL 構文表記規則

構文

-- Syntax for SQL Server  

CREATE DATABASE ENCRYPTION KEY  
       WITH ALGORITHM = { AES_128 | AES_192 | AES_256 | TRIPLE_DES_3KEY }  
   ENCRYPTION BY SERVER   
    {  
        CERTIFICATE Encryptor_Name |  
        ASYMMETRIC KEY Encryptor_Name  
    }  
[ ; ]  
-- Syntax for Parallel Data Warehouse  

CREATE DATABASE ENCRYPTION KEY  
       WITH ALGORITHM = { AES_128 | AES_192 | AES_256 | TRIPLE_DES_3KEY }  
   ENCRYPTION BY SERVER CERTIFICATE Encryptor_Name   
[ ; ]  

Note

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

引数

WITH ALGORITHM = { AES_128 | AES_192 | AES_256 | TRIPLE_DES_3KEY }
暗号化キーに使用する暗号化アルゴリズムを指定します。

警告

SQL Server 2016以降、AES_128、AES_192、AES_256 以外のすべてのアルゴリズムが非推奨とされました。 古いアルゴリズムを使用する場合は (推奨されません)、データベース互換性レベルを 120 以下に設定する必要があります。

ENCRYPTION BY SERVER CERTIFICATE Encryptor_Name
データベース暗号化キーを暗号化するために使用する暗号化処理方法の名前を指定します。

ENCRYPTION BY SERVER ASYMMETRIC KEY Encryptor_Name
データベース暗号化キーを暗号化するために使用する非対称キーの名前を指定します。 非対称キーでデータベース暗号化キーを暗号化するには、非対称キーが拡張キー管理プロバイダーに存在している必要があります。

解説

透過的なデータ暗号化 (TDE) を使用してデータベースを暗号化する前に、データベース暗号化キーが必要です。 データベースを透過的に暗号化すると、特別にコードを変更することなく、データベース全体がファイル レベルで暗号化されます。 データベース暗号化キーの暗号化に使用する証明書または非対称キーは、マスター システム データベースに配置されている必要があります。

TDE に使われる証明書または非対称キーでは、秘密キーのサイズが 3072 ビットに制限されています。

データベース暗号化ステートメントは、ユーザー データベースでのみ使用できます。

データベース暗号化キーは、データベースからエクスポートできません。 このキーを使用できるのは、システム、サーバーでのデバッグ権限を持つユーザー、およびデータベース暗号化キーを暗号化および暗号化解除する証明書へのアクセス権を持つユーザーに限られています。

データベース所有者 (dbo) が変わっても、データベース暗号化キーを再生成する必要はありません。

データベース暗号化キーは、SQL Database データベース用に自動的に作成されます。 CREATE DATABASE ENCRYPTION KEY ステートメントを使用してキーを作成する必要はありません。

アクセス許可

データベースに対する CONTROL 権限と、データベース暗号化キーの暗号化に使用する証明書または非対称キーに対する VIEW DEFINITION 権限が必要です。

TDE の使用に関する他の例については、「Transparent Data Encryption (TDE)」、「EKM の使用による TDE の有効化」、および「Azure Key Vault を使用する拡張キー管理 (SQL Server)」をご覧ください。

次の例では、AES_256 アルゴリズムを使用してデータベース暗号化キーを作成し、MyServerCert という証明書で秘密キーを保護します。

USE AdventureWorks2022;  
GO  
CREATE DATABASE ENCRYPTION KEY  
WITH ALGORITHM = AES_256  
ENCRYPTION BY SERVER CERTIFICATE MyServerCert;  
GO  

参照

透過的なデータ暗号化 (TDE)
SQL Server の暗号化
SQL Server とデータベースの暗号化キー (データベース エンジン)
暗号化階層
ALTER DATABASE SET のオプション (Transact-SQL)
ALTER DATABASE ENCRYPTION KEY (Transact-SQL)
DROP DATABASE ENCRYPTION KEY (Transact-SQL)
sys.dm_database_encryption_keys (Transact-SQL)