AUDIT審計的一些使用
11g開始預設開啟了審計功能,配置選項為DB,同時對許可權,登入進行了審計
審計其實是個很有用的功能,如果不打算使用審計,也可以考慮開啟審計,但是刪除其定義的規則即可:
noaduit all;
noaduit all statements;
noaudit all privileges;
noaudit EXEMPT ACCESS POLICY;
對於審計存放的位置,建議設定為XML,EXTENDED。這樣增加了對SQL語句的捕獲,並且存放在作業系統上,更利於清理
預設審計不會取AUDIT SYSDBA登入的使用者,除非設定AUDIT_SYS_OPERATIONS為TRUE。所以,在決定啟用審計的系統中,要嚴格控制SYSDBA許可權的使用者
在啟用審計的系統中,嚴格控制DBA角色的分配,否則,審計資料可能會被篡改
審計的維護:
遷移AUD$和FGA_LOG$表,直接MOVE的話,配置表中的資料不會更改。但是影響不大
BEGIN
DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_LOCATION(
AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_DB_STD,
AUDIT_TRAIL_LOCATION_VALUE => 'USERS');
END;
/
清空所有審計資料
BEGIN
DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL(
AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_FILES,
USE_LAST_ARCH_TIMESTAMP => FALSE);
END;
/
TRUNCATE TABLE SYS.AUD$;
11g可以建立自動清理審計資料的JOB
其可以根據歸檔時間進行清理
BEGIN -- 清理DB審計資料必須初始化。
DBMS_AUDIT_MGMT.INIT_CLEANUP(
AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_ALL,
DEFAULT_CLEANUP_INTERVAL => 12); -- 定義排程清理工作的頻率。其決定DB如何清理審計資料,但和實際執行頻率無關
END;
/
SELECT * FROM DBA_AUDIT_MGMT_CONFIG_PARAMS
BEGIN -- 定義歸檔審計資料的時間戳
DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(
AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,
LAST_ARCHIVE_TIME => SYSDATE);
DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(
AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_OS,
LAST_ARCHIVE_TIME => SYSDATE);
DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(
AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_XML,
LAST_ARCHIVE_TIME => SYSDATE);
END;
/
SELECT * FROM DBA_AUDIT_MGMT_LAST_ARCH_TS;
BEGIN
DBMS_AUDIT_MGMT.CREATE_PURGE_JOB (
AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_ALL,
AUDIT_TRAIL_PURGE_INTERVAL => 24,
AUDIT_TRAIL_PURGE_NAME => 'Audit_Trail_PJ',
USE_LAST_ARCH_TIMESTAMP => TRUE );
END;
/
SELECT * FROM dba_scheduler_jobs
審計的一些用法:
審計登入
audit session;
本質是審計CREATE SESSION許可權的使用
可以獲得:登入時間,使用者名稱,主機,主機使用者名稱,主機上的程式號
SELECT * FROM DBA_COMMON_AUDIT_TRAIL
WHERE (STATEMENT_TYPE = 'LOGON' -- 普通登入
OR OS_PRIVILEGE = 'SYSDBA') -- SYSDBA登入
AND RETURNCODE > 0 -- 失敗的登入
審計DDL
audit ALTER SYSTEM,CLUSTER,CONTEXT,DATABASE LINK,DIMENSION,DIRECTORY,INDEX,MATERIALIZED VIEW,OUTLINE,PROCEDURE ,PROFILE,PUBLIC DATABASE LINK,PUBLIC SYNONYM,ROLE,ROLLBACK SEGMENT,SEQUENCE,SYNONYM,SYSTEM AUDIT,SYSTEM GRANT,TABLE,TABLESPACE,TRIGGER,TYPE,USER,VIEW,ALTER SEQUENCE,ALTER TABLE,COMMENT TABLE,GRANT DIRECTORY,GRANT PROCEDURE,GRANT SEQUENCE,GRANT TABLE,GRANT TYPE
審計功能沒有提供一種可以直接審計全部DDL的方法
審計指定物件上的DDL:
audit ALTER,AUDIT,COMMENT,GRANT,INDEX,RENAME on / default;
audit AUDIT,COMMENT,GRANT,RENAME on / default
審計物件上的所有操作,包括DML操作
audit all on;
審計由於物件不存在而報錯的語句
audit not exists;
SELECT * FROM dba_common_audit_trail WHERE returncode=942
審計報錯的語句
audit all statements whenever not successful; -- 審計DDL語句錯誤,以及PK衝突等
audit all on whenever not successful; -- 審計DML語句錯誤
如果撤銷使用者的DBA角色,需要分配給使用者那些必須的系統許可權
audit all privileges by;
SELECT DISTINCT priv_used FROM dba_common_audit_trail WHERE db_user='’
ALL與ALL STATEMENTS的區別
ALL審計特定的一類SQL,其不包含DML,ALTER TABLE等
ALL STATEMENTS審計使用者發出的所有SQL,不包含遞迴語句,同時,解析失敗的語句也不會記錄(DDL語句在執行時報錯,DML語句在解析時報錯)
審計其實是個很有用的功能,如果不打算使用審計,也可以考慮開啟審計,但是刪除其定義的規則即可:
noaduit all;
noaduit all statements;
noaudit all privileges;
noaudit EXEMPT ACCESS POLICY;
對於審計存放的位置,建議設定為XML,EXTENDED。這樣增加了對SQL語句的捕獲,並且存放在作業系統上,更利於清理
預設審計不會取AUDIT SYSDBA登入的使用者,除非設定AUDIT_SYS_OPERATIONS為TRUE。所以,在決定啟用審計的系統中,要嚴格控制SYSDBA許可權的使用者
在啟用審計的系統中,嚴格控制DBA角色的分配,否則,審計資料可能會被篡改
審計的維護:
遷移AUD$和FGA_LOG$表,直接MOVE的話,配置表中的資料不會更改。但是影響不大
BEGIN
DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_LOCATION(
AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_DB_STD,
AUDIT_TRAIL_LOCATION_VALUE => 'USERS');
END;
/
清空所有審計資料
BEGIN
DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL(
AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_FILES,
USE_LAST_ARCH_TIMESTAMP => FALSE);
END;
/
TRUNCATE TABLE SYS.AUD$;
11g可以建立自動清理審計資料的JOB
其可以根據歸檔時間進行清理
BEGIN -- 清理DB審計資料必須初始化。
DBMS_AUDIT_MGMT.INIT_CLEANUP(
AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_ALL,
DEFAULT_CLEANUP_INTERVAL => 12); -- 定義排程清理工作的頻率。其決定DB如何清理審計資料,但和實際執行頻率無關
END;
/
SELECT * FROM DBA_AUDIT_MGMT_CONFIG_PARAMS
BEGIN -- 定義歸檔審計資料的時間戳
DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(
AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,
LAST_ARCHIVE_TIME => SYSDATE);
DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(
AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_OS,
LAST_ARCHIVE_TIME => SYSDATE);
DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(
AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_XML,
LAST_ARCHIVE_TIME => SYSDATE);
END;
/
SELECT * FROM DBA_AUDIT_MGMT_LAST_ARCH_TS;
BEGIN
DBMS_AUDIT_MGMT.CREATE_PURGE_JOB (
AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_ALL,
AUDIT_TRAIL_PURGE_INTERVAL => 24,
AUDIT_TRAIL_PURGE_NAME => 'Audit_Trail_PJ',
USE_LAST_ARCH_TIMESTAMP => TRUE );
END;
/
SELECT * FROM dba_scheduler_jobs
審計的一些用法:
審計登入
audit session;
本質是審計CREATE SESSION許可權的使用
可以獲得:登入時間,使用者名稱,主機,主機使用者名稱,主機上的程式號
SELECT * FROM DBA_COMMON_AUDIT_TRAIL
WHERE (STATEMENT_TYPE = 'LOGON' -- 普通登入
OR OS_PRIVILEGE = 'SYSDBA') -- SYSDBA登入
AND RETURNCODE > 0 -- 失敗的登入
審計DDL
audit ALTER SYSTEM,CLUSTER,CONTEXT,DATABASE LINK,DIMENSION,DIRECTORY,INDEX,MATERIALIZED VIEW,OUTLINE,PROCEDURE ,PROFILE,PUBLIC DATABASE LINK,PUBLIC SYNONYM,ROLE,ROLLBACK SEGMENT,SEQUENCE,SYNONYM,SYSTEM AUDIT,SYSTEM GRANT,TABLE,TABLESPACE,TRIGGER,TYPE,USER,VIEW,ALTER SEQUENCE,ALTER TABLE,COMMENT TABLE,GRANT DIRECTORY,GRANT PROCEDURE,GRANT SEQUENCE,GRANT TABLE,GRANT TYPE
審計功能沒有提供一種可以直接審計全部DDL的方法
審計指定物件上的DDL:
audit ALTER,AUDIT,COMMENT,GRANT,INDEX,RENAME on
audit AUDIT,COMMENT,GRANT,RENAME on
審計物件上的所有操作,包括DML操作
audit all on
審計由於物件不存在而報錯的語句
audit not exists;
SELECT * FROM dba_common_audit_trail WHERE returncode=942
審計報錯的語句
audit all statements whenever not successful; -- 審計DDL語句錯誤,以及PK衝突等
audit all on
如果撤銷使用者的DBA角色,需要分配給使用者那些必須的系統許可權
audit all privileges by
SELECT DISTINCT priv_used FROM dba_common_audit_trail WHERE db_user='
ALL與ALL STATEMENTS的區別
ALL審計特定的一類SQL,其不包含DML,ALTER TABLE等
ALL STATEMENTS審計使用者發出的所有SQL,不包含遞迴語句,同時,解析失敗的語句也不會記錄(DDL語句在執行時報錯,DML語句在解析時報錯)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8242091/viewspace-749270/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- audit審計
- 審計--audit
- MySQL審計auditMySql
- AUDIT審計(2)
- Oracle 審計 auditOracle
- oracle 審計(Audit)Oracle
- Oracle Audit 審計功能的認識與使用Oracle
- SQL Server 審計(Audit)SQLServer
- ORACLE AUDIT審計(1)Oracle
- oracle開啟audit(審計)Oracle
- Oracle Audit 審計 說明Oracle
- RHEL審計內容/etc/audit/audit.rules
- Oracle audit 審計功能說明Oracle
- 【AUDIT]Oracle審計配置及常用sqlOracleSQL
- MySQL審計外掛-MariaDB Audit PluginMySqlPlugin
- FGA審計及audit_trail引數AI
- SSH服務審計工具ssh-audit
- Audit裡審計SQL語句與審計系統許可權的區別SQL
- mysql 5.7新增server_audit 安全審計功能MySqlServer
- RHEL審計配置/etc/audit/auditd.conf
- 【AUDIT】審計並記錄使用者連線資料庫資訊資料庫
- Oracle中審計引數audit_trail的討論(轉)OracleAI
- MySQL5.6 audit審計外掛安裝初探MySql
- AUDIT_TRAIL設定及審計日誌清理AI
- 語句審計相關的表是stmt_audit_option_map
- Oracle 標準審計,設定AUDIT_SYSLOG _LEVEL引數Oracle
- 管理AUDIT_TRAIL初始化引數配置標準審計AI
- oracle10g audit--審計sys使用者(as sysdba或者sysoper)特權操作行為Oracle
- 關於設計評審的一些思考
- 審計Oracle資料庫的使用Oracle資料庫
- [20141202]11g審計sys.dba_audit_sessionSession
- 簡單使用oracle的審計語句Oracle
- Oracle FGA 的使用和cleanup audit trailsOracleAI
- Audit 功能的使用方法介紹
- Oracle Audit 功能的使用和說明Oracle
- 審計DBA使用者操作
- 【實驗】【審計】【FGA】使用Oracle的審計功能監控資料庫中的可疑操作Oracle資料庫
- 【實驗】Oracle審計語句的使用演示Oracle