CREATE DATABASE ENCRYPTION KEY (Transact-SQL)CREATE DATABASE ENCRYPTION KEY (Transact-SQL)

適用対象: ○SQL Server XAzure SQL Database XAzure Synapse Analytics (SQL DW) ○Parallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

データベースを透過的に暗号化するために使用する暗号化キーを作成します。Creates an encryption key that is used for transparently encrypting a database. 透過的データベース暗号化について詳しくは、「透過的なデータ暗号化 (TDE)」をご覧ください。For more information about transparent database encryption, see Transparent Data Encryption (TDE).

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

構文Syntax

-- 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   
[ ; ]  

引数Arguments

WITH ALGORITHM = { AES_128 | AES_192 | AES_256 | TRIPLE_DES_3KEY }WITH ALGORITHM = { AES_128 | AES_192 | AES_256 | TRIPLE_DES_3KEY }
暗号化キーに使用する暗号化アルゴリズムを指定します。Specifies the encryption algorithm that is used for the encryption key.

注意

SQL Server 2016以降、AES_128、AES_192、AES_256 以外のすべてのアルゴリズムが非推奨とされました。Beginning with SQL Server 2016, all algorithms other than AES_128, AES_192, and AES_256 are deprecated. 古いアルゴリズムを使用する場合は (推奨されません)、データベース互換性レベルを 120 以下に設定する必要があります。To use older algorithms (not recommended) you must set the database to database compatibility level 120 or lower.

ENCRYPTION BY SERVER CERTIFICATE Encryptor_NameENCRYPTION BY SERVER CERTIFICATE Encryptor_Name
データベース暗号化キーを暗号化するために使用する暗号化処理方法の名前を指定します。Specifies the name of the encryptor used to encrypt the database encryption key.

ENCRYPTION BY SERVER ASYMMETRIC KEY Encryptor_NameENCRYPTION BY SERVER ASYMMETRIC KEY Encryptor_Name
データベース暗号化キーを暗号化するために使用する非対称キーの名前を指定します。Specifies the name of the asymmetric key used to encrypt the database encryption key. 非対称キーでデータベース暗号化キーを暗号化するには、非対称キーが拡張キー管理プロバイダーに存在している必要があります。In order to encrypt the database encryption key with an asymmetric key, the asymmetric key must reside on an extensible key management provider.

解説Remarks

Transparent Data Encryption (TDE) を使ってデータベースを暗号化するには、事前にデータベース暗号化キーが必要です。A database encryption key is required before a database can be encrypted by using Transparent Database Encryption (TDE). データベースを透過的に暗号化すると、特別にコードを変更することなく、データベース全体がファイル レベルで暗号化されます。When a database is transparently encrypted, the whole database is encrypted at the file level, without any special code modifications. データベース暗号化キーの暗号化に使用する証明書または非対称キーは、マスター システム データベースに配置されている必要があります。The certificate or asymmetric key that is used to encrypt the database encryption key must be located in the master system database.

データベース暗号化ステートメントは、ユーザー データベースでのみ使用できます。Database encryption statements are allowed only on user databases.

データベース暗号化キーは、データベースからエクスポートできません。The database encryption key cannot be exported from the database. このキーを使用できるのは、システム、サーバーでのデバッグ権限を持つユーザー、およびデータベース暗号化キーを暗号化および暗号化解除する証明書へのアクセス権を持つユーザーに限られています。It is available only to the system, to users who have debugging permissions on the server, and to users who have access to the certificates that encrypt and decrypt the database encryption key.

データベース所有者 (dbo) が変わっても、データベース暗号化キーを再生成する必要はありません。The database encryption key does not have to be regenerated when a database owner (dbo) is changed.

データベース暗号化キーは、SQL DatabaseSQL Database データベース用に自動的に作成されます。A database encryption key is automatically created for a SQL DatabaseSQL Database database. CREATE DATABASE ENCRYPTION KEY ステートメントを使用してキーを作成する必要はありません。You do not need to create a key using the CREATE DATABASE ENCRYPTION KEY statement.

アクセス許可Permissions

データベースに対する CONTROL 権限と、データベース暗号化キーの暗号化に使用する証明書または非対称キーに対する VIEW DEFINITION 権限が必要です。Requires CONTROL permission on the database and VIEW DEFINITION permission on the certificate or asymmetric key that is used to encrypt the database encryption key.

Examples

TDE の使用に関する他の例については、「Transparent Data Encryption (TDE)」、「EKM の使用による TDE の有効化」、および「Azure Key Vault を使用する拡張キー管理 (SQL Server)」をご覧ください。For additional examples using TDE, see Transparent Data Encryption (TDE), Enable TDE on SQL Server Using EKM, and Extensible Key Management Using Azure Key Vault (SQL Server).

次の例では、AES_256 アルゴリズムを使用してデータベース暗号化キーを作成し、MyServerCert という証明書で秘密キーを保護します。The following example creates a database encryption key by using the AES_256 algorithm, and protects the private key with a certificate named MyServerCert.

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

参照See Also

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