Oracle 9i 發布時宣稱「絕對安全」,旋即被曝 9iAS 緩衝區溢位。資料庫安全無銀彈,唯有建立在體系架構深度理解之上的分層防護才能經受考驗。本文系統梳理核心架構、三大備份模式、賬號治理規範與密碼文件全生命周期管理。
| 模式 | 歸檔能力 | 恢復粒度 | 業務影響 |
|---|---|---|---|
| NOARCHIVELOG | 不支持 | 僅冷備份時間點 | 需停機備份,不可接受數據丟失的系統禁用 |
| ARCHIVELOG | 支持 | 任意時間點 (PITR) | 7×24 核心業務標配,需規劃歸檔目標、備份策略、空間管理 |
| 賬號 | 默認口令 | 風險權限 | 處置動作 |
|---|---|---|---|
| SYS | CHANGE_ON_INSTALL | SYSDBA 所有權限 | 強密碼、禁用遠程、審計所有操作 |
| SYSTEM | MANAGER | DBA 角色、管理權限 | 強密碼、僅作備用管理賬號 |
| DBSNMP | DBSNMP | UNLIMITED TABLESPACE、CREATE PUBLIC SYNONYM | 鎖定/修改密碼、收回系統權限、限制配額 |
| SCOTT | TIGER | UNLIMITED TABLESPACE、豐富對象權限 | 示例環境保留,生產環境刪除 |
| OUTLN | OUTLN | 計劃穩定性權限 | 鎖定、收回非必要權限 |
-- 只讀報表賬號
CREATE USER rpt_user IDENTIFIED BY "Str0ngP@ss#2024"
DEFAULT TABLESPACE rpt_ts QUOTA 5G ON rpt_ts
TEMPORARY TABLESPACE temp_ts
PROFILE secure_profile;
GRANT CREATE SESSION TO rpt_user;
GRANT SELECT ON schema.fact_sales TO rpt_user;
GRANT SELECT ON schema.dim_customer TO rpt_user;
orapwd file=$ORACLE_HOME/dbs/orapwORCL password=SysStr0ngP@ss entries=20 force=y
force=y 覆蓋現有文件 (11.2+)entries 預留特權用戶擴展空間ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE SCOPE=SPFILE;
-- 需重啟生效
-- 授予 SYSDBA 自動寫入密碼文件 (EXCLUSIVE 模式下)
GRANT SYSDBA TO dba_user;
-- 收回自動移除
REVOKE SYSDBA FROM dba_user;
SELECT * FROM V$PWFILE_USERS;
-- USERNAME SYSDB SYSOP SYSAS SYSBK SYSDG SYSKM SYSRAC
-- SYS TRUE TRUE FALSE FALSE FALSE FALSE FALSE
-- DBA_USER TRUE FALSE FALSE FALSE FALSE FALSE FALSE
V$PWFILE_USERS 導出現有特權用戶orapwd 創建新文件 (更大 entries)PASSWORD_FILE_META)痛點:人工修改密碼頻繁、易錯、應用配置同步延遲。解決方案:
PRODUCT_USER_PROFILE 限制 SQL*Plus 直連風險-- 簡化加密函數示例
CREATE OR REPLACE FUNCTION encrypt_pwd(p_plain VARCHAR2) RETURN VARCHAR2 DETERMINISTIC IS
BEGIN RETURN RAWTOHEX(DBMS_CRYPTO.HASH(UTL_I18N.STRING_TO_RAW(p_plain,'AL32UTF8'), DBMS_CRYPTO.HASH_SH256)); END;
安全基石在於:架構清晰、備份可靠、賬號純淨、密碼受控。將上述規範固化為自動化腳本、納入合規基線、持續巡檢演練,方能構建經得起時間與攻擊考驗的 Oracle 安全體系。