隨著網路技術演進,資料庫安全不再是「老生常談」。Oracle 曾宣稱「唯有 9i 絕對安全」,但隨即曝光 9iAS 緩衝區溢位、PenTest/eEye 發現的多個漏洞。本文從架構基礎、內部風險、外部防護三維度建立安全認知。
所有資料庫共享中央系統類目 (Data Dictionary) 位於 SYSTEM 表空間。
Tablespace → Datafile → Block (512~8192 bytes, 建庫固定) → Extent (≥5 連續 Blocks) → Segment。理解儲存層次有助於審計權限、加密、稽核範圍界定。
Oracle SQL*Net/Net8 (TNS) 採用標準化協議支援異構平台;SQL Server 早期依賴 Named Pipes/Tabular Data Stream (TDS),跨平台能力較弱。協議層加密 (Oracle Advanced Security / SQL Server Force Encryption) 均為防竊聽基礎。
| 類型 | 特點 | 優點 | 缺點 |
|---|---|---|---|
| Export/Import (邏輯) | SQL 層面抽取/載入 | 跨版本/平台、可選物件 | 大庫慢、不含物理屬性 |
| 冷備份 (物理) | 關機複製檔案 | 最快、最安全、易歸檔、易恢復 | 需停機、無法時間點恢復、不可單表恢復 |
| 熱備份 (物理) | ARCHIVELOG 模式下線上備份 | 不停機、秒級 PITR、可單實體恢復 | 操作複雜、不可出錯、需大量空間 |
增量匯出策略: 週一完全、週二~四增量、週五累積、週六日增量。災難時:建庫 → 建大回滾段 → 完全導入 → 累積導入 → 最新增量導入。
鐵律: 必須在 SHUTDOWN NORMAL/IMMEDIATE 後執行,開機狀態複製檔案系統層面無效。
BEGIN BACKUP → 複製資料檔 → END BACKUPALTER DATABASE BACKUP CONTROLFILE TO '...'典型安裝自動建立 DBSNMP/DBSNMP,擁有 UNLIMITED TABLESPACE、CREATE PUBLIC SYNONYM 系統權限。攻擊者可惡意撰寫腳本塞滿表空間癱瘓 7×24 系統。
對策: 安裝後立即修改密碼、鎖定帳號、撤銷不必要系統權限、審計該帳號活動。
網路層:防火牆限制 Listener 埠、啟用 SSL/TLS 加密、禁用不必要服務。應用層:最小權限原則、參數化查詢防注入、定期修補 CPU/PSU。稽核層:啟用 AUDIT_TRAIL=DB,EXTENDED、部署 FGA、整合 SIEM。
資料庫安全是系統工程,涵蓋架構理解、備份策略、帳號治理、網路隔離、補丁管理、稽核監控。無絕對安全,唯有纵深防禦與持續演練。