備份檔案一旦離開資料庫保護範圍 (磁帶、異地複製、雲端儲存),極易遭竊取。10g R2 內建 RMAN 加密,無需第三方工具,還原時自動解密。
| 模式 | 適用場景 | 前置條件 | RMAN 指令 |
|---|---|---|---|
| Transparent (透明模式,預設) | 同一伺服器備份/還原 | 已配置 Oracle Encryption Wallet (Advanced Security Option) | SET ENCRYPTION ON; |
| Password (密碼模式) | 備份檔需傳送至異地/他機 | 無需 Wallet,雙方約定密碼 | SET ENCRYPTION ON IDENTIFIED BY 'pwd' ONLY; |
| Dual-mode (雙重模式) | 平常本機還原,偶爾異地還原 | 已配置 Wallet + 設定密碼 | SET ENCRYPTION ON IDENTIFIED BY 'pwd'; |
RUN {
SET ENCRYPTION ON;
BACKUP DATABASE PLUS ARCHIVELOG;
}
-- 備份
RUN {
SET ENCRYPTION ON IDENTIFIED BY 'MySecurePwd123' ONLY;
BACKUP DATABASE;
}
-- 還原 (需提供相同密碼)
RUN {
SET DECRYPTION IDENTIFIED BY 'MySecurePwd123';
RESTORE DATABASE;
RECOVER DATABASE;
}
警告:密碼遺失 = 資料永久無法還原。建議將 RMAN 腳本本身也加密保護。
RUN {
SET ENCRYPTION ON IDENTIFIED BY 'MySecurePwd123';
BACKUP DATABASE;
}
BACKUP → RESTORE → RECOVERY 全流程,確認金鑰/密碼正確。-- sqlnet.ora 需包含
ENCRYPTION_WALLET_LOCATION =
(SOURCE (METHOD=FILE) (METHOD_DATA=(DIRECTORY=/etc/oracle/wallet)))
-- 建立 Wallet
orapki wallet create -wallet /etc/oracle/wallet -auto_login -pwd WalletPwd123
-- 加入主鍵
orapki wallet add -wallet /etc/oracle/wallet -dn "CN=oracle" -keysize 2048 -self_signed -validity 3650 -pwd WalletPwd123