Oracle OCP(52):細粒度審計
細粒度審計 (FGA)(通過 Oracle9i 引入)可以理解為“基於策略的審計”。與標準的審計功能相反,FGA 可用於指定生成審計記錄必需的條件:
FGA 策略通過使用“dbms_fga”程式包以程式設計方式繫結到物件(表、檢視)。類似於用於通過 VPD ("dbms_rls") 進行訪問控制的程式包,它允許您建立任何需要的條件
一、建立策略
語法:
DBMS_FGA.ADD_POLICY( object_schema VARCHAR2, --要審計物件所在使用者的名稱,如果是空,就預設是當前使用者 object_name VARCHAR2, --要審計的物件 policy_name VARCHAR2, --審計策略的名稱 audit_condition VARCHAR2, --制定一個布林條件,若為空,就表示true,即對所有行為 audit_column VARCHAR2, --執行一列或多列,包括隱藏列。未指定表示所有列 handler_schema VARCHAR2, --如果違反策略時要向其他使用者傳送告警,執行此使用者名稱 handler_module VARCHAR2, --指定處理措施的名稱。包含處理措施所在的包。 --不能造成某個動作死迴圈或者啟用、禁用細粒度審計策略,否則報錯ora1000、36、28144 enable BOOLEAN, --啟用或禁用策略,預設為ture,即啟用 statement_types VARCHAR2,--指定要審計的動作,如insert、update、delete、select audit_trail BINARY_INTEGER IN DEFAULT,--指定審計記錄儲存位置以及是否統計fga_log$的lsqltext和lsqlbind列;如果指定audit_Trail為xml,會將xml檔案寫入到audit_File_Dest引數指定位置;對只讀資料庫,oracle將審計記錄寫入xml格式檔案,不管audit_trail如何設定 audit_column_opts BINARY_INTEGER IN DEFAULT);--如果制定了多行,該引數判斷是否審計所有或單獨的行(DBMS_FGA.ALL_COLUMNS和DBMS_FGA.ANY_COLUMNS兩個值)
例句:
BEGIN DBMS_FGA.ADD_POLICY( object_schema => 'HR', object_name => 'EMPLOYEES', policy_name => 'chk_hr_employees', enable => TRUE, statement_types => 'INSERT, UPDATE, SELECT, DELETE', audit_trail => DBMS_FGA.DB); END; /
二、刪除策略
DBMS_FGA.DROP_POLICY( object_schema VARCHAR2, --要審計物件所在使用者的名稱,如果是空,就預設是當前使用者 object_name VARCHAR2, --要審計的物件 policy_name VARCHAR2 ); --審計策略的名稱
三、禁用策略
DBMS_FGA.DISABLE_POLICY( object_schema VARCHAR2, --要審計物件所在使用者的名稱,如果是空,就預設是當前使用者 object_name VARCHAR2, --要審計的物件 policy_name VARCHAR2 ); --審計策略的名稱
四、啟用策略
DBMS_FGA.ENABLE_POLICY( object_schema VARCHAR2, --要審計物件所在使用者的名稱,如果是空,就預設是當前使用者 object_name VARCHAR2, --要審計的物件 policy_name VARCHAR2, --審計策略的名稱 enable BOOLEAN); --啟用
五、查詢策略
SELECT OBJECT_SCHEMA, --要審計物件所在使用者的名稱 OBJECT_NAME, --要審計的物件 POLICY_OWNER, --審計策略的擁有者 POLICY_NAME, --審計策略的名稱 POLICY_TEXT, --審計內容 POLICY_COLUMN, --執行一列或多列,包括隱藏列。未指定表示所有列 PF_SCHEMA, -- PF_PACKAGE, PF_FUNCTION, ENABLED, SEL, INS, UPD, DEL, AUDIT_TRAIL, POLICY_COLUMN_OPTIONS FROM DBA_AUDIT_POLICIES;
六、例句
-
建立使用者賬戶,確認狀態
sysdba使用者登入,建立sysadmin_fga賬號,授權:
GRANT CREATE SESSION, DBA TO sysadmin_fga IDENTIFIED BY password; GRANT SELECT ON OE.ORDERS TO sysadmin_fga; GRANT EXECUTE ON DBMS_FGA TO sysadmin_fga; GRANT SELECT ON SYS.FGA_LOG$ TO sysadmin_fga;
確保實驗所需的OE使用者可登陸
-
建立細粒度審計策略
sysadmin_fga使用者登入,執行:
表示對非資料庫的使用者Robert的增刪改查操作進行審計。
BEGIN DBMS_FGA.ADD_POLICY(OBJECT_SCHEMA => 'OE', OBJECT_NAME => 'ORDERS', POLICY_NAME => 'ORDERS_FGA_POL', AUDIT_CONDITION => 'SYS_CONTEXT(''USERENV'', ''CLIENT_IDENTIFIER'') = ''Robert''', HANDLER_SCHEMA => NULL, HANDLER_MODULE => NULL, ENABLE => True, STATEMENT_TYPES => 'INSERT,UPDATE,DELETE,SELECT', AUDIT_TRAIL => DBMS_FGA.DB + DBMS_FGA.EXTENDED, AUDIT_COLUMN_OPTS => DBMS_FGA.ANY_COLUMNS); END; /
-
測試策略
-
sysadmin_fga登入並查詢:
SELECT DBUID, LSQLTEXT FROM SYS.FGA_LOG$ WHERE POLICYNAME='ORDERS_FGA_POL';
-
然後用OE使用者登入,並執行:
EXEC DBMS_SESSION.SET_IDENTIFIER('Robert');
-
表示身份模擬為Robert。
對開啟審計的ORDERS表進行查詢:
SELECT COUNT(*) FROM ORDERS;
-
sysadmin_fga再次檢視:
發現多了一條記錄
SELECT DBUID, LSQLTEXT FROM SYS.FGA_LOG$ WHERE POLICYNAME='ORDERS_FGA_POL';
刪除內容
DROP USER sysadmin_fga CASCADE;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31490526/viewspace-2644965/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle細粒度審計Oracle
- oracle審計-細粒度(轉)Oracle
- oracle 細粒度審計(fga)Oracle
- Oracle Database標準審計和細粒度審計功能OracleDatabase
- oracle 10g 增強審計(二)----細粒度訪問審計Oracle 10g
- Oracle FGA細粒度審計——基於內容的資料庫審計(一)Oracle資料庫
- Oracle FGA細粒度審計——基於內容的資料庫審計(二)Oracle資料庫
- Oracle FGA細粒度審計——基於內容的資料庫審計(三)Oracle資料庫
- Fine-grainedauditing(FGA) 細粒度審計AI
- 細粒度審計FGA儲存過程含義儲存過程
- Oracle OCP(50):審計簡介Oracle
- Oracle OCP(51):簡單審計Oracle
- 【FGA】擴充套件Oracle細粒度審計功能——呼叫定製的儲存過程套件Oracle儲存過程
- 【FGA】將FGA細粒度審計功能的審計結果記錄在資料庫中資料庫
- 【FGA】將FGA細粒度審計功能的審計結果記錄在XML檔案中XML
- ORACLE FGAC(細粒度許可權控制)(轉)Oracle
- Oracle 11G OCP 1Z0-053 52Oracle
- Oracle審計Oracle
- oracle 審計Oracle
- Java 細粒度鎖續篇Java
- ASM條帶細粒度管理ASM
- Oracle審計(轉)Oracle
- Oracle:審計清理Oracle
- Oracle審計列表Oracle
- Oracle 審計 auditOracle
- Oracle審計例子Oracle
- Oracle 審計功能Oracle
- oracle審計功能Oracle
- oracle 審計(Audit)Oracle
- Oracle OCP 1Z0 053 Q52(DB_ULTRA_SAFE)Oracle
- Golang 自制簡易細粒度鎖Golang
- ORACLE AUDIT審計(1)Oracle
- oracle標準審計Oracle
- ORACLE的 審計功能Oracle
- Oracle FGA審計功能Oracle
- oracle 審計日誌清理Oracle
- oracle開啟audit(審計)Oracle
- 關於oracle審計功能Oracle