安裝 Oracle 前,先在 OS 建立 dba 群組,僅授予 root 與 Oracle 軟體擁有者(如 oracle 用戶) membership。相關執行檔權限設為 710(擁有者可讀寫執行、群組可執行、其他無權限),防止非授權用戶啟動資料庫工具。
711,允許所有合法用戶執行。700,僅限軟體擁有者與 dba 群組。ALTER USER sys IDENTIFIED BY <強密碼>;
ALTER USER system IDENTIFIED BY <強密碼>;
預設 manager 密碼極高風險,上線前必須變更。
$ORACLE_HOME/bin 所有程式擁有者為 oracle 軟體擁有者。.dbf)權限 0600,目錄同樣收回 group/other 讀取權限。遠端連線若以明文傳送密碼極易被竊聽,務必啟用:
sqlnet.ora:SQLNET.ENCRYPTION_CLIENT = REQUIREDsqlnet.ora:SQLNET.ENCRYPTION_SERVER = REQUIREDREMOTE_LOGIN_PASSWORDFILE = NONE 禁止遠端以密碼檔以 SYSDBA 登入。orapwd 建立強密碼檔,限制持有者。| 方式 | 優點 | 適用場景 |
|---|---|---|
| 資料庫認證 | 獨立管理、支援密碼複雜度驗證函數 | 中小型系統、需集中密碼策略 |
| 作業系統認證(OPS$) | 單一登入、集中帳號管理 | 內部受信任環境、Unix/Linux 伺服器 |
| 網路/目錄服務 | 企業級 SSO、與 AD/LDAP 整合 | 大型企業、混合雲環境 |
APP_READ_ONLY、APP_DEVELOPER、APP_ADMIN)彙總權限。OS_ROLES = TRUE 可將角色對應至 OS 群組,簡化權限同步。CREATE ANY TABLE、DROP ANY TABLE 僅授予 DBA 或自動化部署帳號。CREATE TABLE、CREATE PROCEDURE 等受限系統權限,生產環境嚴禁開發帳號。EXECUTE)權限,不直接擁有表 DML 權限。AUDIT_TRAIL = DB, EXTENDED 記錄 SQL 文本與綁定變數。AUDIT POLICY 針對敏感表、特權操作、失敗登入建立細粒度策略。DBA_AUDIT_TRAIL / UNIFIED_AUDIT_TRAIL,設定異常警報(如連續登入失敗、非工作時間 DDL)。文章列舉的歷史漏洞(如 9iAS Web Cache DoS、oidldapd 缺陷)提醒我們:
從 OS 群組、檔案權限、網路加密、認證授權、稽核監控到補丁管理,每一層都不可缺失。建立「最小權限、預設拒絕、全程留痕、定期演練」的安全文化,才能在面對日益複雜的威脅時守住資料資產。