資料庫備份檔(.mdf/.ldf/.bak)一旦外洩,直接掛載至另一實例即可存取資料。SQL Server 2008 引入 透明資料加密 (Transparent Data Encryption, TDE),在 資料庫層級 對資料檔、記錄檔、備份檔執行即時加密/解密,應用程式完全無感,無需修改程式碼。

-- 1. 建立主要金鑰 (master DB)
USE master;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Str0ngP@ssw0rd!';
-- 2. 建立憑證
CREATE CERTIFICATE TDE_Cert WITH SUBJECT = 'TDE Certificate';
-- 3. 切換至目標資料庫,建立 DEK 並啟用加密
USE UserDB;
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER CERTIFICATE TDE_Cert;
ALTER DATABASE UserDB SET ENCRYPTION ON;
SELECT name, is_encrypted FROM sys.databases WHERE name = 'UserDB';
-- is_encrypted = 1 表示已加密
BACKUP CERTIFICATE TDE_Cert
TO FILE = 'D:\Backup\TDE_Cert.cer'
WITH PRIVATE KEY (
FILE = 'D:\Backup\TDE_Cert.pvk',
ENCRYPTION BY PASSWORD = 'Str0ngP@ssw0rd!'
);
RESTORE DATABASE。ALTER DATABASE ENCRYPTION KEY REGENERATE WITH ALGORITHM = AES_256),並同步更新所有備份還原環境。TDE 以最小改動提供靜態資料加密,符合合規與資安審計需求。關鍵在於金鑰管理流程:憑證備份、離線存放、輪換機制、災難演練缺一不可。