oracle開啟audit(審計)
- SQL> CONN /AS SYSDBA
- SQL> show parameter audit
- NAME TYPE VALUE
- ------------------------------------ ----------- ------------------------------
- audit_file_dest string F:\APP\ADMINISTRATOR\ADMIN\ORCL\ADUMP
- audit_sys_operations boolean TRUE
- audit_trail string DB_EXTENDED
如果沒有使用下面語句更改:
- SQL> alter system set audit_trail=db_extended scope=spfile;
注意audit_trail要為DB_EXTENDED才記錄執行的具體語句...
2、重啟例項
- SQL> shutdown immediate;
- SQL> startup
3、針對某表的DML審計(錯誤的也記錄)
- SQL> AUDIT UPDATE,DELETE,INSERT ON T_TEST by access;
4、對該表做各種DML操作
用scott使用者登入
- SQL> conn scott/123
- SQL> create table t_test as select * from emp;
- SQL> update t_test set emp1='111';
- *
- 第 1 行出現錯誤:
- ORA-00904: "EMP1": 識別符號無效
- SQL> delete from t_test where rownum=1;
- 已刪除 1 行。
- SQL> commit;
5、查詢審計資訊
- SQL> select EXTENDED_TIMESTAMP,SESSION_ID,SQL_TEXT
- SQL> from DBA_COMMON_AUDIT_TRAIL ORDER BY EXTENDED_TIMESTAMP DESC;
或者
- SQL> select EXTENDED_TIMESTAMP,SESSION_ID,SQL_TEXT from DBA_COMMON_AUDIT_TRAIL
- SQL> where OBJECT_NAME='T_TEST'
- SQL> and STATEMENT_TYPE in ('INSERT','UPDATE','DELETE');
---結果:
- SQL> /
- EXTENDED_TIMESTAMP SESSION_ID SQL_TEXT
- ---------------------------------------- ---------- ----------------------------
- ------------
- 14-8月 -12 04.14.45.187000 下午 +08:00 190125 update t_test set emp1='111'
- 14-8月 -12 04.26.02.968000 下午 +08:00 190125 delete from t_test where rownum=1
注意:審計一般只用於對普通使用者操作,一般不審計SYS使用者
對於windows系統,對sys使用者的審計資訊並不存在AUDIT_FILE_DEST引數指定的目錄裡,而是在windows的事件管理器中。
---------------------------------------------------------------------------------------------------------------------
另外透過細粒度審計FGA也可以實現上述審計:
用法建立審計策略:
- Syntax
- DBMS_FGA.ADD_POLICY(
- object_schema VARCHAR2,
- object_name VARCHAR2,
- policy_name VARCHAR2,
- audit_condition VARCHAR2,
- audit_column VARCHAR2,
- handler_schema VARCHAR2,
- handler_module VARCHAR2,
- enable BOOLEAN );
刪除審計策略:
- DBMS_FGA.DROP_POLICY(
- object_schema VARCHAR2,
- object_name VARCHAR2,
- policy_name VARCHAR2 );
啟用審計策略:
- DBMS_FGA.ENABLE_POLICY(
- object_schema VARCHAR2 := NULL,
- object_name VARCHAR2,
- policy_name VARCHAR2,
- enable BOOLEAN := TRUE);
禁用審計策略:
- DBMS_FGA.DISABLE_POLICY(
- object_schema VARCHAR2,
- object_name VARCHAR2,
- policy_name VARCHAR2 );
首先,建立審計策略
- SQL> conn /as sysdba
- 已連線。
- SQL> begin
- 2 dbms_fga.add_policy
- 3 (
- 4 object_schema=>'SCOTT',object_name=>'T_TEST',
- 5 policy_name=>'Test_audit'
- 6 );
- 7 end;
- 8 /
- PL/SQL 過程已成功完成。
- SQL> conn scott/tigger
進行查詢
- SQL> select ename from t_test;
使用SYS登入進行查詢,
- SQL> select statement_type,SQL_TEXT from dba_fga_audit_trail;
- STATEME SQL_TEXT
- ------- ----------------------------------------
- SELECT select ename from t_test
------------
注意: 經過發現審計到的SQL語句存在著大小寫2種格式。
直接執行的SQL語句,是什麼樣的語句,審計到的也就是什麼樣。
在儲存裡執行的語句,審計到的全是大寫的語句。
儲存裡動態執行的語句,是什麼樣的語句,審計到的也就是什麼樣的語句。
- BEGIN
- EXECUTE immediate 'delete FrOm emp WHERE ROWNUM=1';
- END;
審計到的就是
-
DELETE delete FrOm emp WHERE ROWNUM=1;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29209863/viewspace-2129000/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 審計 auditOracle
- oracle 審計(Audit)Oracle
- ORACLE AUDIT審計(1)Oracle
- Oracle Audit 審計 說明Oracle
- Oracle audit 審計功能說明Oracle
- audit審計
- 審計--audit
- 【AUDIT]Oracle審計配置及常用sqlOracleSQL
- MySQL審計auditMySql
- AUDIT審計(2)
- SQL Server 審計(Audit)SQLServer
- 開啟Oracle的審計功能Oracle
- Oracle Audit 審計功能的認識與使用Oracle
- RHEL審計內容/etc/audit/audit.rules
- Oracle中審計引數audit_trail的討論(轉)OracleAI
- AUDIT審計的一些使用
- Oracle 標準審計,設定AUDIT_SYSLOG _LEVEL引數Oracle
- MySQL審計外掛-MariaDB Audit PluginMySqlPlugin
- FGA審計及audit_trail引數AI
- SSH服務審計工具ssh-audit
- oracle9i審計功能的開啟和審計策略的設定方法Oracle
- mysql 5.7新增server_audit 安全審計功能MySqlServer
- RHEL審計配置/etc/audit/auditd.conf
- 【Mysql】mysql開啟審計功能MySql
- MySQL5.6 audit審計外掛安裝初探MySql
- AUDIT_TRAIL設定及審計日誌清理AI
- Audit裡審計SQL語句與審計系統許可權的區別SQL
- ORALCE 的AUDIT 以及開啟AUDIT對REDO 的影響
- Oracle審計Oracle
- oracle 審計Oracle
- ORACLE AUDITOracle
- 開啟mysql 資料庫審計功能。MySql資料庫
- Oracle審計(轉)Oracle
- Oracle:審計清理Oracle
- Oracle審計列表Oracle
- Oracle審計例子Oracle
- Oracle 審計功能Oracle
- oracle審計功能Oracle