다음을 통해 공유


CREATE DATABASE ENCRYPTION KEY(Transact-SQL)

데이터베이스를 명시적으로 암호화하는 데 사용되는 암호화 키를 만듭니다. TDE(Transparent Data Encryption)에 대한 자세한 내용은 투명한 데이터 암호화를 참조하십시오.

항목 링크 아이콘 Transact-SQL 구문 표기 규칙

구문

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

인수

  • WITH ALGORITHM = { AES_128 | AES_192 | AES_256 | TRIPLE_DES_3KEY }
    암호화 키에 사용되는 암호화 알고리즘을 지정합니다.

  • ENCRYPTION BY SERVER CERTIFICATE Encryptor_Name
    데이터베이스 암호화 키를 암호화하는 데 사용되는 암호기의 이름을 지정합니다.

  • ENCRYPTION BY SERVER ASYMMETRIC KEY Encryptor_Name
    데이터베이스 암호화 키를 암호화하는 데 사용되는 비대칭 키의 이름을 지정합니다. 비대칭 키로 데이터베이스 암호화 키를 암호화하려면 비대칭 키가 확장 가능 키 관리 공급자에 있어야 합니다.

주의

데이터베이스 암호화 키가 있어야 TDE(Transparent Database Encryption)를 사용하여 데이터베이스를 암호화할 수 있습니다. 데이터베이스가 명시적으로 암호화되면 특수 코드의 수정 없이 전체 데이터베이스가 파일 수준에서 암호화됩니다. 데이터베이스 암호화 키를 암호화하는 데 사용되는 인증서 또는 비대칭 키는 master 시스템 데이터베이스에 있어야 합니다.

데이터베이스 암호화 문은 사용자 데이터베이스에서만 사용할 수 있습니다.

데이터베이스 암호화 키는 데이터베이스에서 내보낼 수 없습니다. 이 작업은 해당 시스템, 서버에서 디버깅 권한이 있는 사용자, 데이터베이스 암호화 키를 암호화하고 해독하는 인증서에 액세스할 수 있는 사용자만 수행할 수 있습니다.

Dbo(데이터베이스 소유자)가 변경될 경우 데이터베이스 암호화 키를 다시 생성하지 않아도 됩니다.

사용 권한

데이터베이스에 대한 CONTROL 권한과 데이터베이스 암호화 키를 암호화하는 데 사용되는 인증서 또는 비대칭 키에 대한 VIEW DEFINITION 권한이 필요합니다.

TDE를 사용하는 다른 예를 보려면 투명한 데이터 암호화EKM을 사용하여 TDE 설정을 참조하십시오.

다음 예에서는 AES_256 알고리즘을 사용하여 데이터베이스 암호화 키를 만들고 MyServerCert라는 인증서로 개인 키를 보호합니다.

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

참고 항목

참조

ALTER DATABASE SET 옵션(Transact-SQL)

ALTER DATABASE ENCRYPTION KEY(Transact-SQL)

DROP DATABASE ENCRYPTION KEY(Transact-SQL)

sys.dm_database_encryption_keys(Transact-SQL)

개념

투명한 데이터 암호화

SQL Server 암호화

SQL Server 및 데이터베이스 암호화 키(데이터베이스 엔진)

암호화 계층