DROP DATABASE ENCRYPTION KEY (Transact-SQL)

适用于:SQL ServerAzure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)

删除透明数据库加密使用的数据库加密密钥。 有关透明数据库加密的详细信息,请参阅透明数据加密 (TDE)

重要

即使对于数据库不再启用加密,用于保护数据库加密密钥的证书备份也应保留。 即使数据库不再加密,事务日志的某些部分仍可能保持受到保护,但在执行数据库的完整备份前,对于某些操作可能需要证书。

Transact-SQL 语法约定

语法

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 和 Analytics Platform System (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)