| 程式類別 | 代表程式 | 建議權限 | 擁有者:群組 | 說明 |
| DBA 專用 | sqlplus (as sysdba), rman, dbca, netca | 750 (rwxr-x---) | oracle:dba | 僅 dba 群組可執行 |
| 開發/一般用戶 | sqlplus, exp, imp, sqlldr | 755 (rwxr-xr-x) | oracle:oinstall | 所有合法用戶可執行 |
| 內部/系統 | oracle (二進位), tnslsnr | 750 | oracle:dba | 保護核心二進位 |
防線三:資料庫關鍵檔案保護
- 資料檔/控制檔/重做日誌:
chmod 660 (rw-rw----) oracle:dba,僅擁有者與 DBA 群組可讀寫
- 參數檔:
chmod 640 (rw-r-----) oracle:dba
- 密碼檔:
chmod 640 oracle:dba,嚴防非授權讀取
- 稽核目錄:
chmod 750 oracle:dba,防止稽核日誌被竄改/刪除
防線四:SQL*DBA / SQL*Plus 特權命令控制
- 僅限 DBA 群組執行:
STARTUP、SHUTDOWN、CONNECT INTERNAL / AS SYSDBA
- OS 權限映射:
os_roles = TRUE (init.ora) + 建立 OS 群組對應資料庫角色
- 群組命名格式:
ora__[_D][_A]
- D = DEFAULT 角色
- A = ADMIN OPTION (可授予他人)
OS 角色映射範例
-- /etc/group
ora_prod_osdba_d:x:502:oracle,john -- PROD 實例 OSDBA 預設角色
ora_prod_osoper_a:x:503:mary -- PROD 實例 OSOPER 帶 ADMIN OPTION
ora_prod_dba_role:x:504:dev1,dev2 -- 自訂 DBA_ROLE 映射
防線五:資料檔案與網路安全
網路加密配置 (sqlnet.ora)
# 客戶端/伺服端均需配置
SQLNET.ENCRYPTION_SERVER = REQUIRED
SQLNET.ENCRYPTION_TYPES_SERVER = (AES256, AES192, AES128)
SQLNET.CRYPTO_CHECKSUM_SERVER = REQUIRED
SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER = (SHA512, SHA256, SHA1)
SQLNET.ENCRYPTION_CLIENT = REQUIRED
SQLNET.ENCRYPTION_TYPES_CLIENT = (AES256, AES192, AES128)
遠程 DBA 存取控制
- 選項 A:
REMOTE_LOGIN_PASSWORDFILE = NONE 完全禁止遠程 SYSDBA
- 選項 B:
REMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE + orapwd 設定強密碼 + SSL/TLS 加密傳輸
- 監聽器限制:
listener.ora 配置 VALID_NODE_CHECKING_REGISTRATION = ON + REGISTRATION_INVITED_NODES 白名單
防線六:核心帳號密碼基線
-- 立即修改預設密碼
ALTER USER SYS IDENTIFIED BY "ComplexP@ssw0rd1!";
ALTER USER SYSTEM IDENTIFIED BY "ComplexP@ssw0rd2!";
-- 鎖定非必要預設帳號
ALTER USER OUTLN ACCOUNT LOCK;
ALTER USER DBSNMP ACCOUNT LOCK;
-- ... 其他預設帳號視需求解鎖
安全基線檢查清單 (月度執行)
| 檢查項目 | 驗證方式 | 合格標準 |
| OS 群組權限 | id oracle; groups oracle | 屬於 oinstall/dba/oper |
| $ORACLE_HOME/bin 權限 | ls -l $ORACLE_HOME/bin/sqlplus | 750 oracle:dba |
| 資料檔權限 | ls -l $ORACLE_HOME/dbs/*.dbf | 660 oracle:dba |
| 網路加密 | tnsping + Wireshark 抓包 | 封包不可讀 |
| 預設帳號狀態 | SELECT username, account_status FROM dba_users WHERE username IN ('SYS','SYSTEM','OUTLN','DBSNMP'); | SYS/SYSTEM OPEN, 其他 LOCKED |
| 稽核啟用 | SHOW PARAMETER audit_trail | DB / DB,EXTENDED / XML |
將安全控制下沉到 OS 檔案權限、網路加密傳輸、資料庫內部最小權限三個層面,才能構建真正可信的資料庫安全基線。
- 上一篇文章: Oracle 效能防護四大支柱:分區、索引重建、段碎片整理、自由區段合併
- 下一篇文章: Oracle SQL 執行效率提升三大核心技術:ORDERED、ORDERED_PREDICATES、OPTIMIZER_SEARCH_LIMIT
Copyright ©
程式碼之家 All Rights Reserved