在 Unix/Linux 環境下,透過作業系統群組管理 Oracle 可執行檔權限,是防禦未授權存取的第一道防線。Oracle 程式分為「所有用戶可執行」與「僅 DBA 可執行」兩大類,群組機制精確落實最小權限原則。
| 群組名稱 | 用途 | 典型成員 | 目錄/檔案權限 |
|---|---|---|---|
| dba (或自訂如 ora_dba) | 資料庫管理員群組,擁有 SYSDBA/SYSOPER 特權 | root, oracle 軟體擁有者 | $ORACLE_HOME/bin 內 DBA 工具 710 (rwx--x---) |
| oinstall (或 ora_oper) | 一般操作員群組,可執行 SQL*Plus、SQL*Forms、exp/imp 等公用工具 | 開發人員、應用帳號 | 公用工具 710 (rwx--x---) |
| 其他 | 不影響安全性的輔助程式 | 所有用戶 | 711 (rwx--x--x) |
ALTER USER sys IDENTIFIED BY new_password;
ALTER USER system IDENTIFIED BY new_password;
$ORACLE_HOME/bin 所有檔案擁有者必須為 oracle 軟體擁有者。透過 /etc/group 將 OS 群組映射為資料庫角色,格式:
ora__<角色名>[_d][_a]
d:預設角色a:WITH ADMIN OPTION(僅能授予角色,不可授予用戶)ora_test_osoper_d:NONE:1:jim,narry,scott
ora_test_osdba_a:NONE:3:pat
ora_test_role1:NONE:4:bob,jane,tom,mary,jim
init.ora :os_roles = TRUEorapwd 建立密碼檔「群組 + 權限位 + OS 角色映射」三位一體,將資料庫安全防線前移至作業系統層,有效阻擋未授權程式執行與特權濫用。