TDE(투명한 데이터 암호화)Transparent Data Encryption (TDE)

적용 대상:Applies to: 예SQL ServerSQL Server(지원되는 모든 버전)yesSQL ServerSQL Server (all supported versions) 예Azure SQL DatabaseAzure SQL DatabaseYesAzure SQL DatabaseAzure SQL Database 예Azure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance 예Azure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics 예병렬 데이터 웨어하우스Parallel Data Warehouseyes병렬 데이터 웨어하우스Parallel Data Warehouse적용 대상:Applies to: 예SQL ServerSQL Server(지원되는 모든 버전)yesSQL ServerSQL Server (all supported versions) 예Azure SQL DatabaseAzure SQL DatabaseYesAzure SQL DatabaseAzure SQL Database 예Azure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance 예Azure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics 예병렬 데이터 웨어하우스Parallel Data Warehouseyes병렬 데이터 웨어하우스Parallel Data Warehouse

‘TDE’(투명한 데이터 암호화)는 SQL ServerSQL Server, Azure SQL DatabaseAzure SQL DatabaseAzure Synapse Analytics(SQL Data Warehouse)Azure Synapse Analytics (SQL Data Warehouse) 데이터 파일을 암호화합니다.Transparent Data Encryption (TDE) encrypts SQL ServerSQL Server, Azure SQL DatabaseAzure SQL Database, and Azure Synapse Analytics(SQL Data Warehouse)Azure Synapse Analytics (SQL Data Warehouse) data files. 이 암호화는 미사용 데이터 암호화라고 합니다.This encryption is known as encrypting data at rest.

데이터베이스를 보호하기 위해 다음과 같은 예방 조치를 취할 수 있습니다.To help secure a database, you can take precautions like:

  • 보안 시스템 디자인Designing a secure system.
  • 기밀 자산 암호화Encrypting confidential assets.
  • 데이터베이스 서버 주변에 방화벽 빌드하기Building a firewall around the database servers.

그러나 드라이브 또는 백업 테이프와 같은 물리적 미디어를 도용하는 악의적인 사용자는 데이터베이스를 복원하거나 연결하여 데이터를 검색할 수 있습니다.But a malicious party who steals physical media like drives or backup tapes can restore or attach the database and browse its data.

한 가지 해결 방법은 데이터베이스의 중요한 데이터를 암호화하고 인증서를 사용하여 데이터를 암호화하는 데 사용된 키를 보호하는 것입니다.One solution is to encrypt sensitive data in a database and use a certificate to protect the keys that encrypt the data. 이 솔루션은 키가 없는 사용자가 데이터를 사용하지 않도록 방지합니다.This solution prevents anyone without the keys from using the data. 그러나 이러한 종류의 보호는 미리 계획해야 합니다.But you must plan this kind of protection in advance.

TDE는 데이터 및 로그 파일에 대한 실시간 I/O 암호화 및 암호 해독을 수행합니다.TDE does real-time I/O encryption and decryption of data and log files. 암호화는 DEK(데이터베이스 암호화 키)를 사용합니다.The encryption uses a database encryption key (DEK). 데이터베이스 부팅 레코드는 복구 중에 가용성에 대한 키를 저장합니다.The database boot record stores the key for availability during recovery. DEK는 대칭 키입니다.The DEK is a symmetric key. 서버의 master 데이터베이스에 저장된 인증서 또는 EKM 모듈이 보호하는 비대칭 키로 보호됩니다.It's secured by a certificate that the server's master database stores or by an asymmetric key that an EKM module protects.

TDE는 데이터 및 로그 파일인 미사용 데이터를 보호합니다.TDE protects data at rest, which is the data and log files. 이를 통해 다양한 업계에서 확립된 법, 규정 및 지침을 준수할 수 있습니다.It lets you follow many laws, regulations, and guidelines established in various industries. 이 기능으로 소프트웨어 개발자는 AES 및 3DES 암호화 알고리즘을 사용하여 기존의 애플리케이션을 변경하지 않고 데이터를 암호화할 수 있습니다.This ability lets software developers encrypt data by using AES and 3DES encryption algorithms without changing existing applications.

TDE 정보About TDE

데이터베이스 파일의 암호화는 페이지 수준에서 수행됩니다.Encryption of a database file is done at the page level. 암호화된 데이터베이스의 페이지는 암호화된 후 디스크에 작성되고 메모리로 읽어 들일 때 암호가 해독됩니다.The pages in an encrypted database are encrypted before they're written to disk and are decrypted when read into memory. TDE로 암호화된 데이터베이스의 크기가 증가되지는 않습니다.TDE doesn't increase the size of the encrypted database.

SQL DatabaseSQL Database에 적용되는 정보Information applicable to SQL DatabaseSQL Database

SQL DatabaseSQL Database V12에서 TDE를 사용하는 경우, SQL DatabaseSQL Database에 의해 master 데이터베이스에 저장된 서버 수준 인증서가 자동으로 생성됩니다.When you use TDE with SQL DatabaseSQL Database V12, SQL DatabaseSQL Database automatically creates for you the server-level certificate stored in the master database. SQL DatabaseSQL Database에서 TDE 데이터베이스를 이동하기 위해 이동 작업에 대한 데이터베이스의 암호를 해독할 필요가 없습니다.To move a TDE database on SQL DatabaseSQL Database, you don't have to decrypt the database for the move operation. SQL DatabaseSQL Database에서 TDE를 사용하는 방법에 대한 자세한 내용은 Azure SQL Database를 사용한 투명한 데이터 암호화를 참조하세요.For more information on using TDE with SQL DatabaseSQL Database, see Transparent Data Encryption with Azure SQL Database.

SQL ServerSQL Server에 적용되는 정보Information applicable to SQL ServerSQL Server

데이터베이스 보안을 설정한 후 올바른 인증서를 사용하여 데이터베이스를 복원할 수 있습니다.After you secure a database, you can restore it by using the correct certificate. 인증서에 대한 자세한 내용은 SQL Server Certificates and Asymmetric Keys를 참조하십시오.For more information about certificates, see SQL Server Certificates and Asymmetric Keys.

TDE를 사용하도록 설정한 후 인증서와 연결된 프라이빗 키를 즉시 백업합니다.After you enable TDE, immediately back up the certificate and its associated private key. 인증서를 사용할 수 없게 되거나 다른 서버에서 데이터베이스를 복원하거나 연결하는 경우 인증서와 프라이빗 키의 백업이 필요합니다.If the certificate becomes unavailable, or if you restore or attach the database on another server, you need backups of the certificate and private key. 그렇지 않으면 데이터베이스를 열 수 없습니다.Otherwise, you can't open the database.

데이터베이스에서 TDE를 사용하지 않도록 설정한 경우에도 암호화 인증서를 유지합니다.Keep the encrypting certificate even if you've disabled TDE on the database. 데이터베이스가 암호화되지 않더라도 트랜잭션 로그의 일부는 보호된 상태로 남아 있을 수 있습니다.Although the database isn't encrypted, parts of the transaction log might remain protected. 또한 전체 데이터베이스 백업을 수행할 때까지 일부 작업에 대한 인증서가 필요할 수 있습니다.You also might need the certificate for some operations until you do a full database backup.

만료 날짜가 지난 인증서도 여전히 데이터를 TDE로 암호화하고 해독하는 데 사용할 수 있습니다.You can still use a certificate that exceeds its expiration date to encrypt and decrypt data with TDE.

암호화 계층Encryption hierarchy

다음 그림에서는 TDE 암호화의 아키텍처를 보여 줍니다.The following illustration shows the architecture of TDE encryption. 데이터베이스 수준 항목만(데이터베이스 암호화 키 및 ALTER DATABASE 부분)은 SQL DatabaseSQL Database에서 TDE를 사용하는 경우 사용자가 구성할 수 있습니다.Only the database-level items (the database encryption key and ALTER DATABASE portions) are user-configurable when you use TDE on SQL DatabaseSQL Database.

투명한 데이터베이스 암호화 아키텍처

TDE 사용Enable TDE

TDE를 사용하려면 다음 단계를 수행합니다.To use TDE, follow these steps.

적용 대상: SQL ServerSQL Server.Applies to: SQL ServerSQL Server.

  1. 마스터 키를 만듭니다.Create a master key.

  2. 마스터 키로 보호되는 인증서를 만들거나 얻습니다.Create or obtain a certificate protected by the master key.

  3. 데이터베이스 암호화 키를 만들고 인증서를 사용하여 보호합니다.Create a database encryption key and protect it by using the certificate.

  4. 암호화를 사용하도록 데이터베이스를 설정합니다.Set the database to use encryption.

다음 예에서는 MyServerCert라는 서버에 설치된 인증서를 사용하여 AdventureWorks2012 데이터베이스를 암호화하고 암호를 해독하는 방법을 보여 줍니다.The following example shows encryption and decryption of the AdventureWorks2012 database using a certificate named MyServerCert that's installed on the server.

USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<UseStrongPasswordHere>';
go
CREATE CERTIFICATE MyServerCert WITH SUBJECT = 'My DEK Certificate';
go
USE AdventureWorks2012;
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_128
ENCRYPTION BY SERVER CERTIFICATE MyServerCert;
GO
ALTER DATABASE AdventureWorks2012
SET ENCRYPTION ON;
GO

암호화 및 암호 해독 작업은 SQL ServerSQL Server에 의해 백그라운드 스레드로 예약됩니다.The encryption and decryption operations are scheduled on background threads by SQL ServerSQL Server. 이러한 작업의 상태를 보려면 이 문서의 뒷부분에 나오는 표의 카탈로그 뷰 및 동적 관리 뷰를 사용합니다.To view the status of these operations, use the catalog views and dynamic management views in the table that appears later in this article.

주의

TDE가 사용된 백업 데이터베이스 파일도 데이터베이스 암호화 키를 사용하여 암호화됩니다.Backup database files that have TDE enabled are also encrypted with the database encryption key. 따라서 이러한 백업 파일을 복원하려면 데이터베이스 암호화 키를 보호하는 인증서를 사용할 수 있어야 합니다.As a result, when you restore these backups, the certificate that protects the database encryption key must be available. 따라서 데이터베이스를 백업하는 것 외에도 서버 인증서의 백업도 유지 관리해야 합니다.Therefore, in addition to backing up the database, make sure to maintain backups of the server certificates. 인증서를 더 이상 사용할 수 없을 경우 데이터 손실이 발생합니다.Data loss results if the certificates are no longer available.

자세한 내용은 SQL Server Certificates and Asymmetric Keys을 참조하세요.For more information, see SQL Server Certificates and Asymmetric Keys.

명령 및 함수Commands and functions

다음 문에서 TDE 인증서를 허용하려면 데이터베이스 마스터 키를 사용하여 암호화합니다.For the following statements to accept TDE certificates, use a database master key to encrypt them. 암호만으로 암호화하면 명령문에서는 암호기로서 이것을 거부합니다.If you encrypt them by password only, the statements reject them as encryptors.

중요

TDE에서 사용한 후 인증서 암호를 보호하는 경우 다시 시작한 후에는 데이터베이스에 액세스할 수 없게 됩니다.If you make the certificates password protected after TDE uses them, the database becomes inaccessible after a restart.

다음 표에서는 TDE 명령 및 함수에 대한 링크와 설명을 제공합니다.The following table provides links and explanations of TDE commands and functions:

명령 또는 함수Command or function 목적Purpose
CREATE DATABASE ENCRYPTION KEY(Transact-SQL)CREATE DATABASE ENCRYPTION KEY (Transact-SQL) 데이터베이스를 암호화하는 키를 만듭니다.Creates a key that encrypts a database
ALTER DATABASE ENCRYPTION KEY(Transact-SQL)ALTER DATABASE ENCRYPTION KEY (Transact-SQL) 데이터베이스를 암호화하는 키를 변경합니다.Changes the key that encrypts a database
DROP DATABASE ENCRYPTION KEY(Transact-SQL)DROP DATABASE ENCRYPTION KEY (Transact-SQL) 데이터베이스를 암호화하는 키를 제거합니다.Removes the key that encrypts a database
ALTER DATABASE SET 옵션(TRANSACT-SQL)ALTER DATABASE SET Options (Transact-SQL) TDE를 설정하는 데 사용된 ALTER DATABASE 옵션에 대해 설명합니다.Explains the ALTER DATABASE option that is used to enable TDE

카탈로그 뷰 및 동적 관리 뷰Catalog views and dynamic management views

다음 표에서는 TDE 카탈로그 뷰 및 동적 관리 뷰를 보여 줍니다.The following table shows TDE catalog views and dynamic management views.

카탈로그 뷰 또는 동적 관리 뷰Catalog view or dynamic management view 목적Purpose
sys.databases(Transact-SQL)sys.databases (Transact-SQL) 데이터베이스 정보를 보여 주는 카탈로그 뷰입니다.Catalog view that displays database information
sys.certificates(Transact-SQL)sys.certificates (Transact-SQL) 데이터베이스의 인증서를 보여 주는 카탈로그 뷰입니다.Catalog view that shows the certificates in a database
sys.dm_database_encryption_keys(Transact-SQL)sys.dm_database_encryption_keys (Transact-SQL) 데이터베이스 암호화 키 및 암호화의 상태에 대한 정보를 제공하는 동적 관리 뷰입니다.Dynamic management view that provides information about a database's encryption keys and state of encryption

사용 권한Permissions

위에 표시된 표에서 설명한 것처럼 TDE의 기능 및 명령에는 각각의 사용 권한 요구 사항이 있습니다.Each TDE feature and command has individual permission requirements as described in the tables shown earlier.

TDE와 관련된 메타데이터를 보려면 인증서에 대한 VIEW DEFINITION 권한이 필요합니다.Viewing the metadata involved with TDE requires the VIEW DEFINITION permission on a certificate.

고려 사항Considerations

처리 중인 데이터베이스 암호화 작업에 대해 재암호화를 검색하는 동안에는 데이터베이스에 대한 유지 관리 작업이 비활성화됩니다.While a re-encryption scan for a database encryption operation is in progress, maintenance operations to the database are disabled. 데이터베이스에 단일 사용자 모드 설정을 사용하여 유지 관리 작업을 수행할 수 있습니다.You can use the single-user mode setting for the database to do maintenance operations. 자세한 내용은 단일 사용자 모드로 데이터베이스 설정을 참조하세요.For more information, see Set a Database to Single-user Mode.

sys.dm_database_encryption_keys 동적 관리 뷰를 사용하여 데이터베이스 암호화의 상태를 찾을 수 있습니다.Use the sys.dm_database_encryption_keys dynamic management view to find the state of database encryption. 자세한 내용은 이 문서의 앞부분에 나오는 "카탈로그 뷰 및 동적 관리 뷰" 섹션을 참조하세요.For more information, see the "Catalog views and dynamic management views" section earlier in this article.

TDE에서는 데이터베이스의 모든 파일 및 파일 그룹이 암호화됩니다.In TDE, all files and filegroups in a database are encrypted. 데이터베이스에 READ ONLY로 표시된 파일 그룹이 있는 경우 데이터베이스 암호화 작업이 실패합니다.If any filegroup in a database is marked READ ONLY, the database encryption operation fails.

데이터베이스를 데이터베이스 미러링이나 로그 전달에 사용하는 경우 두 데이터베이스 모두 암호화됩니다.If you use a database in database mirroring or log shipping, both databases are encrypted. 로그 트랜잭션은 암호화되어 전송됩니다.The log transactions are encrypted when sent between them.

중요

전체 텍스트 인덱스는 데이터베이스에 암호화가 설정될 때 암호화됩니다.Full-text indexes are encrypted when a database is set for encryption. SQL Server 2008보다 이전 버전의 SQL Server에서 만든 이러한 인덱스는 SQL Server 2008 이상에서 데이터베이스로 가져오며 TDE로 암호화됩니다.Such indexes created in a SQL Server version earlier than SQL Server 2008 are imported into the database by SQL Server 2008 or later and are encrypted by TDE.

데이터베이스의 TDE 상태 변경을 모니터링하려면 SQL Server Audit 또는 SQL Database 감사를 사용합니다.To monitor changes in the TDE status of a database, use SQL Server Audit or SQL Database auditing. SQL Server의 경우 SQL Server 감사 동작 그룹 및 동작에서 찾을 수 있는 감사 동작 그룹 DATABASE_CHANGE_GROUP에서 TDE가 추적됩니다.For SQL Server, TDE is tracked under the audit action group DATABASE_CHANGE_GROUP, which you can find in SQL Server Audit Action Groups and Actions.

제한Restrictions

초기 데이터베이스 암호화, 키 변경 또는 데이터베이스 암호 해독 중에는 다음 작업이 허용되지 않습니다.The following operations are disallowed during initial database encryption, key change, or database decryption:

  • 데이터베이스의 파일 그룹에서 파일 삭제Dropping a file from a filegroup in a database

  • 데이터베이스 삭제Dropping a database

  • 데이터베이스를 오프라인 상태로 만들기Taking a database offline

  • 데이터베이스 분리Detaching a database

  • 데이터베이스 또는 파일 그룹을 READ ONLY 상태로 전환Transitioning a database or filegroup into a READ ONLY state

CREATE DATABASE ENCRYPTION KEY, ALTER DATABASE ENCRYPTION KEY, DROP DATABASE ENCRYPTION KEY 및 ALTER DATABASE...SET ENCRYPTION 문 실행 중에는 다음 작업이 허용되지 않습니다.The following operations are disallowed during the CREATE DATABASE ENCRYPTION KEY, ALTER DATABASE ENCRYPTION KEY, DROP DATABASE ENCRYPTION KEY, and ALTER DATABASE...SET ENCRYPTION statements:

  • 데이터베이스의 파일 그룹에서 파일 삭제Dropping a file from a filegroup in a database

  • 데이터베이스 삭제Dropping a database

  • 데이터베이스를 오프라인 상태로 만들기Taking a database offline

  • 데이터베이스 분리Detaching a database

  • 데이터베이스 또는 파일 그룹을 READ ONLY 상태로 전환Transitioning a database or filegroup into a READ ONLY state

  • ALTER DATABASE 명령 사용Using an ALTER DATABASE command

  • 데이터베이스 또는 데이터베이스 파일 백업 시작Starting a database or database-file backup

  • 데이터베이스 또는 데이터베이스 파일 복원 시작Starting a database or database-file restore

  • 스냅샷 만들기Creating a snapshot

다음 작업 또는 상태에서는 CREATE DATABASE ENCRYPTION KEY, ALTER DATABASE ENCRYPTION KEY, DROP DATABASE ENCRYPTION KEY 및 ALTER DATABASE...SET ENCRYPTION 문을 실행할 수 없습니다.The following operations or conditions prevent the CREATE DATABASE ENCRYPTION KEY, ALTER DATABASE ENCRYPTION KEY, DROP DATABASE ENCRYPTION KEY, and ALTER DATABASE...SET ENCRYPTION statements:

  • 데이터베이스는 읽기 전용이거나 데이터베이스에 읽기 전용 파일 그룹이 포함된 경우A database is read-only or has read-only filegroups.

  • ALTER DATABASE 명령이 실행 중인 경우An ALTER DATABASE command is running.

  • 데이터 백업이 실행 중인 경우A data backup is running.

  • 데이터베이스가 오프라인이거나 복원 상태인 경우A database is in an offline or restore condition.

  • 스냅샷이 진행 중인 경우A snapshot is in progress.

  • 데이터베이스 유지 관리 태스크가 실행 중인 경우Database maintenance tasks are running.

데이터베이스 파일을 만들 때 TDE가 사용하도록 설정되어 있으면 즉시 파일 초기화를 사용할 수 없습니다.When database files are created, instant file initialization is unavailable when TDE is enabled.

비대칭 키로 데이터베이스 암호화 키를 암호화하려면 비대칭 키가 확장 가능 키 관리 공급자에 있어야 합니다.To encrypt a database encryption key with an asymmetric key, the asymmetric key must be on an extensible key-management provider.

TDE 검사TDE scan

데이터베이스에서 TDE를 사용하도록 설정하려면 SQL ServerSQL Server는 암호화 검색을 수행해야 합니다.To enable TDE on a database, SQL ServerSQL Server must do an encryption scan. 검색은 데이터 파일에서 버퍼 풀로 각 페이지를 읽은 다음 암호화된 페이지를 디스크에 다시 씁니다.The scan reads each page from the data files into the buffer pool and then writes the encrypted pages back out to disk.

암호화 검색에 대한 더 많은 제어를 제공하기 위해 SQL Server 2019 (15.x)SQL Server 2019 (15.x)는 일시 중단 및 다시 시작 구문을 포함하는 TDE 검색을 제공합니다.To give you more control over the encryption scan, SQL Server 2019 (15.x)SQL Server 2019 (15.x) introduces TDE scan, which has a suspend and resume syntax. 시스템의 워크로드가 많거나 업무에 중요한 시간 동안에는 검색을 일시 중지한 후 나중에 검색을 다시 시작할 수 있습니다.You can pause the scan while the workload on the system is heavy or during business-critical hours and then resume the scan later.

TDE 암호화 검사를 일시 중지하려면 다음 구문을 사용합니다.Use the following syntax to pause the TDE encryption scan:

ALTER DATABASE <db_name> SET ENCRYPTION SUSPEND;

마찬가지로 TDE 암호화 검사를 다시 시작하려면 다음 구문을 사용합니다.Similarly, use the following syntax to resume the TDE encryption scan:

ALTER DATABASE <db_name> SET ENCRYPTION RESUME;

encryption_scan_state 열이 dm_database_encryption_keys 동적 관리 뷰에 추가되었습니다.The encryption_scan_state column has been added to the sys.dm_database_encryption_keys dynamic management view. 암호화 검색의 현재 상태를 표시합니다.It shows the current state of the encryption scan. 마지막 암호화 검사 상태 변경 날짜와 시간을 포함하는 encryption_scan_modify_date라는 새 열도 있습니다.There's also a new column called encryption_scan_modify_date, which contains the date and time of the last encryption-scan state change.

암호화 검사가 일시 중단된 상태에서 SQL ServerSQL Server 인스턴스가 다시 시작되면 시작 시 오류 로그에 메시지가 기록됩니다.If the SQL ServerSQL Server instance restarts while its encryption scan is suspended, a message is logged in the error log on startup. 이 메시지는 기존 검사가 일시 중지되었음을 나타냅니다.The message indicates that an existing scan has been paused.

TDE 및 트랜잭션 로그TDE and transaction logs

데이터베이스에서 TDE를 사용하여 현재 가상 트랜잭션 로그의 남은 부분을 제거합니다.Letting a database use TDE removes the remaining part of the current virtual transaction log. 제거하면 다음 트랜잭션 로그가 생성됩니다.The removal forces creation of the next transaction log. 이러한 작업은 데이터베이스에 암호화가 설정된 후 로그에 남아 있는 일반 텍스트가 없도록 보장합니다.This behavior guarantees that no clear text is left in the logs after the database is set for encryption.

로그 파일 암호화의 상태를 찾으려면 이 예에서와 같이 encryption_state 뷰의 sys.dm_database_encryption_keys 열을 확인합니다.To find the status of log-file encryption, see the encryption_state column in the sys.dm_database_encryption_keys view, as in this example:

USE AdventureWorks2012;
GO
/* The value 3 represents an encrypted state
   on the database and transaction logs. */
SELECT *
FROM sys.dm_database_encryption_keys
WHERE encryption_state = 3;
GO

SQL ServerSQL Server 로그 파일 아키텍처에 대한 자세한 내용은 트랜잭션 로그(SQL Server)를 참조하세요.For more information about the SQL ServerSQL Server log-file architecture, see The Transaction Log (SQL Server).

데이터베이스 암호화 키가 변경되기 전에는 이전 데이터베이스 암호화 키가 트랜잭션 로그에 기록된 모든 데이터를 암호화합니다.Before a database encryption key changes, the previous database encryption key encrypts all data written to the transaction log.

데이터베이스 암호화 키를 두 번 변경하는 경우 데이터베이스 암호화 키를 다시 변경하기 전에 먼저 로그 백업을 수행해야 합니다.If you change a database encryption key twice, you must do a log backup before you can change the database encryption key again.

TDE 및 tempdb 시스템 데이터베이스TDE and the tempdb system database

SQL ServerSQL Server 인스턴스의 다른 데이터베이스가 TDE를 사용하여 암호화된 경우 tempdb 시스템 데이터베이스가 암호화됩니다.The tempdb system database is encrypted if any other database on the SQL ServerSQL Server instance is encrypted by using TDE. 이 암호화로 인해 동일한 SQL ServerSQL Server 인스턴스의 암호화되지 않은 데이터베이스의 성능에 영향을 미칠 수 있습니다.This encryption might have a performance effect for unencrypted databases on the same SQL ServerSQL Server instance. tempdb 시스템 데이터베이스에 대한 자세한 내용은 tempdb 데이터베이스를 참조하세요.For more information about the tempdb system database, see tempdb Database.

TDE 및 복제TDE and replication

복제를 수행해도 암호화된 형식의 TDE 설정 데이터베이스에 있는 데이터는 자동으로 복제되지 않습니다.Replication doesn't automatically replicate data from a TDE-enabled database in an encrypted form. 배포 및 구독자 데이터베이스를 보호하려면 TDE를 개별적으로 설정해야 합니다.Separately enable TDE if you want to protect distribution and subscriber databases.

스냅샷 복제는 BCP 파일 같은 암호화되지 않은 중간 파일에 데이터를 저장할 수 있습니다.Snapshot replication can store data in unencrypted intermediate files like BCP files. 트랜잭션 및 병합 복제에 대한 초기 데이터 배포도 가능합니다.The initial data distribution for transactional and merge replication can too. 이러한 복제를 수행하는 동안 암호화를 사용하여 통신 채널을 보호할 수 있습니다.During such replication, you can enable encryption to protect the communication channel.

자세한 내용은 데이터베이스 엔진에 암호화 연결 사용(SQL Server 구성 관리자)을 참조하세요.For more information, see Enable Encrypted Connections to the Database Engine (SQL Server Configuration Manager).

TDE 및 Always OnTDE and Always On

Always On 가용성 그룹에 암호화된 데이터베이스를 추가할 수 있습니다.You can add an encrypted database to an Always On availability group.

가용성 그룹의 일부인 데이터베이스를 암호화하려면 먼저 마스터 키와 인증서를 만들거나 모든 보조 복제본에서 EKM(비대칭 키)을 만든 후에 주 복제본에서 데이터베이스 암호화 키를 만들어야 합니다.To encrypt databases that are part of an availability group, create the master key and certificates, or asymmetric key (EKM) on all secondary replicas before creating the database encryption key on the primary replica.

DEK(데이터베이스 암호화 키)를 보호하는 데 인증서를 사용하는 경우, 먼저 주 복제본에서 만든 인증서를 백업한 다음, 모든 보조 복제본에서 파일에서 인증서를 만든 후에 주 복제본에서 데이터베이스 암호화 키를 만들어야 합니다.If a certificate is used to protect the database encryption key (DEK), back up the certificate created on the primary replica, and then create the certificate from a file on all secondary replicas before creating the database encryption key on the primary replica.

TDE 및 FILESTREAM 데이터TDE and FILESTREAM data

TDE를 사용하도록 설정한 경우에도 FILESTREAM 데이터는 암호화되지 않습니다.FILESTREAM data isn't encrypted even when you enable TDE.

TDE 제거Remove TDE

ALTER DATABASE 문을 사용하여 데이터베이스에서 암호화를 제거합니다.Remove encryption from the database by using the ALTER DATABASE statement.

ALTER DATABASE <db_name> SET ENCRYPTION OFF;

데이터베이스 상태를 보려면 sys.dm_database_encryption_keys 동적 관리 뷰를 사용합니다.To view the state of the database, use the sys.dm_database_encryption_keys dynamic management view.

암호 해독이 완료될 때까지 기다린 후에 DROP DATABASE ENCRYPTION KEY를 사용하여 데이터베이스 암호화 키를 제거합니다.Wait for decryption to finish before removing the database encryption key by using DROP DATABASE ENCRYPTION KEY.

중요

TDE에 사용되는 마스터 키와 인증서를 안전한 위치에 백업합니다.Back up the master key and certificate that are used for TDE to a safe location. 마스터 키와 인증서는 데이터베이스가 TDE로 암호화될 때 만들어진 백업을 복원하는 데 필요합니다.The master key and certificate are required to restore backups that were taken when the database was encrypted with TDE. 데이터베이스 암호화 키를 제거한 후에는 로그 백업을 수행한 다음, 암호 해독된 데이터베이스의 새로운 전체 백업을 수행합니다.After you remove the database encryption key, take a log backup followed by a fresh full backup of the decrypted database.

TDE 및 버퍼 풀 확장TDE and buffer pool extension

TDE를 사용하여 데이터베이스를 암호화한 경우에 BPE(버퍼 풀 확장)와 관련된 파일은 암호화되지 않습니다.When you encrypt a database using TDE, files related to buffer pool extension (BPE) aren't encrypted. 해당 파일에는 파일 시스템 수준에서 BitLocker 또는 EFS와 같은 암호화 도구를 사용합니다.For those files, use encryption tools like BitLocker or EFS at the file-system level.

TDE 및 메모리 내 OLTPTDE and In-Memory OLTP

TDE는 메모리 내 OLTP 개체가 포함된 데이터베이스에서 TDE를 사용할 수 있습니다.You can enable TDE on a database that has In-Memory OLTP objects. TDE를 사용하는 경우 SQL Server 2016(13.x)SQL Server 2016 (13.x)Azure SQL DatabaseAzure SQL Database 메모리 내 OLTP 로그 레코드와 데이터가 암호화됩니다.In SQL Server 2016(13.x)SQL Server 2016 (13.x) and Azure SQL DatabaseAzure SQL Database, In-Memory OLTP log records and data are encrypted if you enable TDE. TDE를 사용하지만 MEMORY_OPTIMIZED_DATA 파일 그룹의 파일이 암호화되지 않으면 SQL Server 2014(12.x)SQL Server 2014 (12.x) 메모리 내 OLTP 로그 레코드와 데이터가 암호화됩니다.In SQL Server 2014(12.x)SQL Server 2014 (12.x), In-Memory OLTP log records are encrypted if you enable TDE, but files in the MEMORY_OPTIMIZED_DATA filegroup are unencrypted.

다른 SQL Server로 TDE 보호 데이터베이스 이동Move a TDE Protected Database to Another SQL Server
EKM을 사용하여 SQL Server에서 TDE를 사용하도록 설정Enable TDE on SQL Server Using EKM
Azure Key Vault(SQL Server)를 사용한 확장 가능 키 관리Extensible Key Management Using Azure Key Vault (SQL Server)

Azure SQL Database를 사용한 투명한 데이터 암호화Transparent Data Encryption with Azure SQL Database
SQL Data Warehouse에서 TDE(투명한 데이터 암호화) 시작Get started with Transparent Data Encryption (TDE) on SQL Data Warehouse
SQL Server 암호화SQL Server Encryption
SQL Server 및 데이터베이스 암호화 키(데이터베이스 엔진)SQL Server and Database Encryption Keys (Database Engine)

참고 항목See also

SQL Server 데이터베이스 엔진 및 Azure SQL Database 보안 센터Security Center for SQL Server Database Engine and Azure SQL Database
FILESTREAM [SQL Server]FILESTREAM (SQL Server)