DROP DATABASE ENCRYPTION KEY (Transact-SQL)
适用于:SQL Server Azure SQL 托管实例 Azure Synapse Analytics Analytics 平台系统(PDW)
删除透明数据库加密使用的数据库加密密钥。 有关透明数据库加密的详细信息,请参阅透明数据加密 (TDE)。
重要
即使对于数据库不再启用加密,用于保护数据库加密密钥的证书备份也应保留。 即使数据库不再加密,事务日志的某些部分仍可能保持受到保护,但在执行数据库的完整备份前,对于某些操作可能需要证书。
语法
DROP DATABASE ENCRYPTION KEY
注意
Azure Synapse Analytics 中的无服务器 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)