CREATE DATABASE ENCRYPTION KEY (Transact-SQL)
適用対象: SQL Server
Azure SQL Managed Instance
Analytics Platform System (PDW)
データベースを透過的に暗号化するために使用する暗号化キーを作成します。 Transparent Data Encryption (TDE) の詳細については、「 Transparent Data Encryption (TDE)を参照してください。
構文
-- 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)