DROP DATABASE ENCRYPTION KEY(Transact-SQL)

적용 대상:SQL ServerAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System(PDW)

TDE(Transparent Data Encryption)에 사용된 데이터베이스 암호화 키를 삭제합니다. 투명한 데이터 암호화에 대한 자세한 내용은 TDE(투명한 데이터 암호화)를 참조하세요.

중요

데이터베이스에 암호화를 사용할 수 없는 경우에도 데이터베이스 암호화 키를 보호하는 인증서의 백업을 보관해야 합니다. 데이터베이스가 더 이상 암호화되지 않더라도 트랜잭션 로그 부분은 그대로 보호될 수 있으며, 일부 작업의 경우 데이터베이스 전체 백업을 수행할 때까지는 인증서가 필요할 수 있습니다.

Transact-SQL 구문 표기 규칙

Syntax

DROP DATABASE ENCRYPTION KEY  

참고

이 구문은 Azure Synapse Analytics의 서버리스 SQL 풀에서 지원되지 않습니다.

참고 항목

SQL Server 2014(12.x) 및 이전 버전에 대한 Transact-SQL 구문을 보려면 이전 버전 설명서를 참조 하세요.

설명

데이터베이스가 암호화되면 먼저 ALTER DATABASE 문을 사용하여 데이터베이스에서 암호화를 제거해야 합니다. 데이터베이스 암호화 키를 제거하기 전에 해독이 완료될 때까지 기다립니다. ALTER DATABASE 문에 대한 자세한 내용은 ALTER DATABASE SET 옵션 (Transact-SQL)을 참조하세요. 데이터베이스 상태를 보려면 sys.dm_database_encryption_keys 동적 관리 뷰를 사용합니다.

사용 권한

데이터베이스에 대한 CONTROL 권한이 필요합니다.

예제

다음 예제에서는 데이터베이스 암호화를 제거하고 데이터베이스 암호화 키를 삭제합니다.

ALTER DATABASE AdventureWorks2022  
SET ENCRYPTION OFF;  
GO  
/* Wait for decryption operation to complete, look for a   
value of  1 in the query below. */  
SELECT encryption_state  
FROM sys.dm_database_encryption_keys;  
GO  
USE AdventureWorks2022;  
GO  
DROP DATABASE ENCRYPTION KEY;  
GO  

예: Azure Synapse Analytics 및 분석 플랫폼 시스템(PDW)

다음 예제에서는 TDE 암호화를 제거한 다음, 데이터베이스 암호화 키를 삭제합니다.

ALTER DATABASE AdventureWorksPDW2012  
    SET ENCRYPTION OFF;  
GO  
/* Wait for decryption operation to complete, look for a   
value of  1 in the query below. */  
WITH dek_encryption_state AS   
(  
    SELECT ISNULL(db_map.database_id, dek.database_id) AS database_id, encryption_state  
    FROM sys.dm_pdw_nodes_database_encryption_keys AS dek  
        INNER JOIN sys.pdw_nodes_pdw_physical_databases AS node_db_map  
           ON dek.database_id = node_db_map.database_id AND dek.pdw_node_id = node_db_map.pdw_node_id  
        LEFT JOIN sys.pdw_database_mappings AS db_map  
            ON node_db_map .physical_name = db_map.physical_name  
        INNER JOIN sys.dm_pdw_nodes AS nodes  
            ON nodes.pdw_node_id = dek.pdw_node_id  
    WHERE dek.encryptor_thumbprint <> 0x  
)  
SELECT TOP 1 encryption_state  
       FROM  dek_encryption_state  
       WHERE dek_encryption_state.database_id = DB_ID('AdventureWorksPDW2012 ')  
       ORDER BY (CASE encryption_state WHEN 3 THEN -1 ELSE encryption_state END) DESC;   
GO  
USE AdventureWorksPDW2012;  
GO  
DROP DATABASE ENCRYPTION KEY;  
GO  

참고 항목

TDE(투명한 데이터 암호화)
SQL Server 암호화
SQL Server 및 데이터베이스 암호화 키(데이터베이스 엔진)
암호화 계층
ALTER DATABASE SET 옵션(TRANSACT-SQL)
CREATE DATABASE ENCRYPTION KEY(Transact-SQL)
ALTER DATABASE ENCRYPTION KEY(Transact-SQL)
sys.dm_database_encryption_keys(Transact-SQL)