DROP DATABASE ENCRYPTION KEY (Transact-SQL)
適用於:SQL Server Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW)
卸除資料庫透明加密中所使用的資料庫加密金鑰。 如需透明資料庫加密的詳細資訊,請參閱透明資料加密 (TDE)。
重要
凡是用於保護資料庫加密金鑰的憑證都應該保留備份,即便是資料庫已經不再啟用加密。 就算資料庫已不再加密,交易記錄的某些部分可能仍受到保護,因而有些作業截至資料庫執行完整備份為止或許都需要此憑證。
Syntax
DROP DATABASE ENCRYPTION KEY
注意
Azure Synapse Analytics 的無伺服器 SQL 集區不支援此語法。
備註
如果資料庫經過加密,您必須使用 ALTER DATABASE 陳述式,先從資料庫移除加密。 等候解密完成,然後再移除資料庫加密金鑰。 如需 ALTER DATABASE 陳述式的詳細資訊,請參閱 ALTER DATABASE SET Options (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)