CREATE DATABASE ENCRYPTION KEY(Transact-SQL)
적용 대상: SQL Server
Azure SQL Managed Instance
Analytics Platform System(PDW)
데이터베이스를 명시적으로 암호화하는 데 사용되는 암호화 키를 만듭니다. TDE(투명한 데이터 암호화)에 대한 자세한 내용은 TDE(투명한 데이터 암호화)를 참조하세요.
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
[ ; ]
참고 항목
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(투명한 데이터 암호화)를 사용하여 데이터베이스를 암호화하려면 데이터베이스 암호화 키가 필요합니다. 데이터베이스가 명시적으로 암호화되면 특수 코드의 수정 없이 전체 데이터베이스가 파일 수준에서 암호화됩니다. 데이터베이스 암호화 키를 암호화하는 데 사용되는 인증서 또는 비대칭 키는 master 시스템 데이터베이스에 있어야 합니다.
TDE에 사용되는 인증 또는 비대칭 키의 프라이빗 키 크기는 3072비트로 제한됩니다.
데이터베이스 암호화 문은 사용자 데이터베이스에서만 사용할 수 있습니다.
데이터베이스 암호화 키는 데이터베이스에서 내보낼 수 없습니다. 이 작업은 해당 시스템, 서버에서 디버깅 권한이 있는 사용자, 데이터베이스 암호화 키를 암호화하고 해독하는 인증서에 액세스할 수 있는 사용자만 수행할 수 있습니다.
Dbo(데이터베이스 소유자)가 변경될 경우 데이터베이스 암호화 키를 다시 생성하지 않아도 됩니다.
데이터베이스 암호화 키는 SQL Database 데이터베이스에 대해 자동으로 생성됩니다. CREATE DATABASE ENCRYPTION KEY 문을 사용하여 키를 만들 필요가 없습니다.
사용 권한
데이터베이스에 대한 CONTROL 권한과 데이터베이스 암호화 키를 암호화하는 데 사용되는 인증서 또는 비대칭 키에 대한 VIEW DEFINITION 권한이 필요합니다.
예제
TDE를 사용하는 추가 예제를 보려면 TDE(투명한 데이터 암호화), EKM을 사용하여 SQL Server에서 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)