状态含义:0 No key、1 Unencrypted、2 Encryption in progress、3 Encrypted、4 Key change、5 Decryption in progress、6 Protection change。
示例查询:
查看数据库加密状态
SELECT db.name, db.is_encrypted, dm.encryption_state, dm.percent_complete, dm.key_algorithm, dm.key_length
FROM sys.databases db
JOIN sys.dm_database_encryption_keys dm ON db.database_id = dm.database_id
ORDER BY db.name;
观察加密扫描对日志与性能的影响(VLDB 场景尤为重要)
在加密扫描期间,关注事务日志增长与 I/O 压力,必要时在业务低峰期执行或分段执行。
扫描控制与性能
对于 SQL Server 2019+,支持暂停/恢复 TDE 扫描,便于在高峰期规避性能抖动:
暂停:ALTER DATABASE <db_name> SET ENCRYPTION SUSPEND;
恢复:ALTER DATABASE <db_name> SET ENCRYPTION RESUME;
备份与迁移
备份证书与私钥,确保可恢复性:
BACKUP CERTIFICATE TDECert TO FILE = ‘C:\certs\TDECert’
WITH PRIVATE KEY (FILE = ‘C:\certs\TDECertKey’, ENCRYPTION BY PASSWORD = ‘StrongP@ssw0rd’);