首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

善用作業系統群組強化 Oracle 資料庫安全

     編輯:Oracle 資料庫基礎

核心概念

在 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)

實作步驟

  1. 安裝前建立 DBA 群組,將 root 及 oracle 軟體擁有者加入。安裝程式會自動將 SQL*DBA 系統權限指派給此群組。
  2. 建立 Oracle 使用者群組,授權公用可執行檔(SQL*Plus、exp/imp 等)給此群組,權限設為 710。
  3. 調整非關鍵程式權限為 711,確保基本可用性不犧牲安全。
  4. 修改預設密碼:安裝完成後立即變更 SYS、SYSTEM 密碼:
    ALTER USER sys IDENTIFIED BY new_password;
    ALTER USER system IDENTIFIED BY new_password;

伺服器端可執行檔權限收斂

  • $ORACLE_HOME/bin 所有檔案擁有者必須為 oracle 軟體擁有者。
  • 一般工具:711(全體可執行)。
  • DBA 專用工具:700(僅擁有者可執行)。

進階:OS 角色對應資料庫角色

透過 /etc/group 將 OS 群組映射為資料庫角色,格式:

ora__<角色名>[_d][_a]
  • d:預設角色
  • a:WITH ADMIN OPTION(僅能授予角色,不可授予用戶)

範例 /etc/group 設定

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

啟用條件

  1. 修改 init.ora:os_roles = TRUE
  2. 重啟資料庫
  3. 若需 CONNECT INTERNAL,執行 orapwd 建立密碼檔

總結

「群組 + 權限位 + OS 角色映射」三位一體,將資料庫安全防線前移至作業系統層,有效阻擋未授權程式執行與特權濫用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved