首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 資料庫安全性管理基本措施:認證、授權、審計、視圖、角色防火牆

     編輯:Oracle 資料庫相關知識

五大核心措施

  1. 使用者認證:帳號/密碼驗證,防止非法登入。支援 OS 認證(NTS)、密碼檔、LDAP/OID、Kerberos、RADIUS。
  2. 系統/物件權限授權:GRANT CONNECT, RESOURCE TO user(系統權限)、GRANT SELECT ON scott.emp TO user(物件權限),最小權限原則。
  3. 角色型存取控制 (RBAC):將權限打包成角色(CREATE ROLE app_read),授權角色而非直接授權用戶,便於批量管理。
  4. 審計追蹤:AUDIT SELECT ON scott.emp BY ACCESS,記錄誰、何時、做什麼,支援標準/精細審計(FGA)。
  5. 視圖/虛擬私有資料庫 (VPD):行/欄位級安全,DBMS_RLS.ADD_POLICY 動態附加 WHERE 條件。

應用系統常見「假用戶」模式風險

  • 應用用單一資料庫帳號連線,真實用戶身份藏在應用層/加密配置檔。
  • 風險:開發人員可反編譯代碼取得資料庫密碼 → 繞過應用邏輯直連資料庫 → 惡意操作。

進階防禦:角色密碼防火牆

用戶以自有帳號登入,**預設角色僅具 CONNECT**(無業務權限)。業務角色(如 checkerrole)藏於應用代碼中,含密碼:

-- 建立角色與密碼
CREATE ROLE checkerrole IDENTIFIED BY xm361001;
CREATE ROLE defaultrole IDENTIFIED BY defaultrole;

-- 授權角色
GRANT SELECT, UPDATE ON account.paytable TO checkerrole;
GRANT CONNECT TO defaultrole;

-- 建立用戶並設定預設角色
CREATE USER xiayan IDENTIFIED BY xiayan;
GRANT checkerrole, defaultrole TO xiayan;
ALTER USER xiayan DEFAULT ROLE defaultrole;

-- 應用登入後啟用業務角色
CONNECT xiayan/xiayan@orcl;
SET ROLE checkerrole IDENTIFIED BY xm361001;  -- 密碼僅應用知曉
-- 現在擁有 paytable SELECT/UPDATE 權限
-- 登出或未 SET ROLE 時,僅有 CONNECT,無法操作任何業務表

優勢

  • 開發人員不知角色密碼,無法盜用業務權限。
  • 用戶不知角色密碼,無法繞過應用直連資料庫操作。
  • 角色密碼可定期輪換,應用配置熱更新。

補充:12c+ 新特性

  • PDB 層級鎖定:ALTER PLUGGABLE DATABASE LOCKDOWN。
  • 資料遮罩/編輯:DBMS_REDACT、DBMS_TSDP。
  • 統一審計:UNIFIED_AUDIT_TRAIL 整合所有審計類型。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved