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

Oracle 資料庫安全性管理策略:作業系統層、網路層與資料層纵深防禦

     編輯:Oracle 資料庫基礎

構建從 OS 到資料層的多層次安全防護矩陣

資料庫安全非單一工具可解,需結合作業系統權限、網路加密、資料庫內部權限、稽核與備份形成纵深防禦。本文系統闡述 Unix/Linux 群組權限模型、Oracle 實用程式檔案權限、資料檔保護、SQL*DBA 特權命令控制、網路加密與 DBA 遠程存取控制六大防線。

防線一:作業系統群組權限模型 (Unix/Linux)

標準群組規劃

/etc/group 配置範例

oinstall:x:501:oracle,root
dba:x:502:oracle
oper:x:503:oracle,backup_admin
asmadmin:x:504:grid

防線二:Oracle 實用程式檔案權限 ($ORACLE_HOME/bin)

群組名GID成員用途
oinstall501oracle, root軟體安裝擁有者 (Inventory)
dba502oracle, gridSYSDBA 權限映射 (OS 驗證)
oper503oracle, backup_adminSYSOPER 權限映射
asmadmin504gridASM 管理 (RAC/Grid Infrastructure)

防線三:資料庫關鍵檔案保護

  • 資料檔/控制檔/重做日誌: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;
-- ... 其他預設帳號視需求解鎖

安全基線檢查清單 (月度執行)

程式類別代表程式建議權限擁有者:群組說明
DBA 專用sqlplus (as sysdba), rman, dbca, netca750 (rwxr-x---)oracle:dba僅 dba 群組可執行
開發/一般用戶sqlplus, exp, imp, sqlldr755 (rwxr-xr-x)oracle:oinstall所有合法用戶可執行
內部/系統oracle (二進位), tnslsnr750oracle:dba保護核心二進位

將安全控制下沉到 OS 檔案權限、網路加密傳輸、資料庫內部最小權限三個層面,才能構建真正可信的資料庫安全基線。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
檢查項目驗證方式合格標準
OS 群組權限id oracle; groups oracle屬於 oinstall/dba/oper
$ORACLE_HOME/bin 權限ls -l $ORACLE_HOME/bin/sqlplus750 oracle:dba
資料檔權限ls -l $ORACLE_HOME/dbs/*.dbf660 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_trailDB / DB,EXTENDED / XML