前言:安全形勢嚴峻
Oracle 9i 推出時宣稱「絕對安全」,旋即被發現 9iAS 緩衝區溢位、PenTest/eEye 曝光多個漏洞。資料庫安全非一次性設定,需建立持續防護體系。
一、Oracle 基礎架構認知
核心組件
- 執行個體:背景進程 + SGA
- SYSTEM 表空間:資料字典核心
- 使用者表空間:業務資料載體
- 線上重做日誌:至少 2 組,循環寫入
- 歸檔日誌:選配,恢復關鍵
- 控制檔、參數檔、網路設定檔
日誌機制
- 線上重做日誌:LGWR 即時寫入,支援實例恢復
- 歸檔重做日誌:ARCH 複製備份,支援介質恢復、時間點恢復
- 兩種模式:
NOARCHIVELOG(無歸檔)vs ARCHIVELOG(有歸檔)
儲存結構
表空間 → 資料檔 → 區塊 (512-8192 bytes) → 區段 → 範圍 (≥5 連續區塊)。
二、內部防護:系統層面備份恢復
三大標準備份
| 類型 | 方式 | 特點 |
| 邏輯 | Export/Import | 物件級、跨版本/平台、效能較差 |
| 物理 | 冷備份 | 關機備份、最快最安全、需停機 |
| 物理 | 熱備份 | 開機備份、需 ARCHIVELOG、秒級恢復 |
Export/Import 詳解
- 三種模式:表 (T)、使用者 (U)、全庫 (Full)
- 三種增量類型:完全、累計、增量
- 排程範例:週一完全、週二至四增量、週五累計、週六日增量
- 恢復順序:建庫 → 建立大回滾段 → 完全導入 → 累計導入 → 最新增量導入
- 一致性參數:
CONSISTENT=Y 確保讀一致性匯出
冷備份操作
SHUTDOWN NORMAL;
CP 所有資料檔、控制檔、重做日誌、init.ora 至備份目錄
STARTUP;
優點:快速、簡單、易歸檔;缺點:需停機、僅能時間點恢復、不可物件級恢復。
熱備份操作三階段
- 表空間級:
BEGIN BACKUP → 複製資料檔 → END BACKUP
- 歸檔日誌:暫停 ARCH → 複製歸檔檔 → 重啟 ARCH → 備份歸檔檔
- 控制檔:
ALTER DATABASE BACKUP CONTROLFILE TO '...'
風險:操作錯誤導致資料檔模糊狀態、歸檔目的地爆滿、END BACKUP 遺漏導致下次啟動強制恢復。
三、內部隱患:使用者與密碼管理
DBSNMP 預設帳號風險
典型安裝自動建立 DBSNMP/DBSNMP,擁有 UNLIMITED TABLESPACE、CREATE PUBLIC SYNONYM 系統權限。惡意腳本可填滿表空間導致癱瘓。
普遍管理缺失
- 權限過大:開發帳號擁有 DBA 權限
- 存儲混雜:所有用戶預設表空間為 SYSTEM,資料相互可見、影響核心表空間
- 密碼弱化:帳號即密碼、SYS/SYSTEM 密碼眾所周知
規範建議
DBA 規範
- Solaris/OS 密碼嚴格保密、定期輪換
- SYS/SYSTEM 密碼修改為高強度字串
- OEM/Web 管理端口 ADMIN 密碼同步強化
- 偏好
SVRMGRM 圖形介面管理
開發帳號規範
- 依應用建立獨立表空間、物理檔案分離規劃
- 表空間命名對應業務域:
DEMO、HUMAN、BOOK、QUESTION、PC
- 物理檔案路徑規劃:
/業務域/子系統/服務.dbf
- 磁碟使用率 >90% 時遷移至閒置分區
- 初始大小 2MB,自動擴充 2MB,大型系統可達百 MB-GB
- 索引與資料分離不同表空間,減少爭用
- 臨時表空間視負載決定是否獨立
四、外部威脅應對(續篇重點)
網路層防火牆、監聽器加密/認證、審計追蹤、Database Vault、資料遮罩、入侵偵測、滲透測試常態化。
- 上一篇文章: Oracle 資料庫技術圖解(第 38 期)
- 下一篇文章: Linux RedHat 6.0 安裝 Oracle 8.0.5 完整實戰指南
Copyright ©
程式碼之家 All Rights Reserved