AUDIT審計(2)
二、審計位置
審計記錄可以傳送到SYS.AUD$資料庫表或作業系統檔案。為了啟用審計並指定記錄審計記錄的位置,將初始引數AUDIT_TRAIL 設定為如下幾個值之一:
NONE, FALSE |
禁用審計 |
OS |
啟用審計,將審計記錄傳送到作業系統檔案 |
DB, TRUE |
啟用審計,將審計記錄傳送到SYS.AUD$表 |
DB_EXTENDED |
啟用審計,將審計記錄傳送到SYS.AUD$表,並在CLOB 列SQLBIND 和SQLTEXT 中記錄額外的資訊 |
XML |
啟用審計,以XML 格式寫所有審計記錄 |
EXTENDED |
啟用審計,在審計跟蹤中記錄所有列,包括SqlText 和SqlBind 的值 |
引數AUDIT_TRAIL 不是動態的,為了使AUDIT_TRAIL 引數中的改動生效,必須關閉資料庫並重新啟動。在對SYS.AUD$表進行審計時,應該注意監控該表的大小,以避免影響SYS 表空間中其他物件的空間需求。推薦週期性歸檔SYS.AUD$中的行,並且擷取該表。
在Oracle11g 中CREATE SESSION 作為受審計的許可權來被記錄,因此當SYSTEM 表空間因磁碟空間而無法擴充套件時將導致這部分審計記錄無法生成,這將最終導致普通使用者的新會話將無法正常建立,普通使用者將無法登陸資料庫。在這種場景中仍可以使用SYSDBA 身份的使用者建立會話,在將審計資料合適備份後刪除一部分記錄,或者TRUNCATE AUD$都可以解決上述問題。在預設情況下會以AUTOEXTEND ON 自動擴充套件選項建立SYSTEM 表空間,因此係統表空間在必要時會自動增長,我們所需注意的是磁碟上的剩餘空間是否能夠滿足其增長需求,以及資料檔案擴充套件的上限,對於普通的8k smallfile 表空間而言單個資料檔案的最大尺寸是32G。
三、開戶審計功能
SQL> alter system set audit_trail=db_extended scope=spfile;
重啟資料庫生效:
SQL> startup force
四、語句審計:
對於語句審計,audit 命令的格式看起來如下所示:
AUDIT sql_statement_clause BY {SESSION |ACCESS}WHENEVER [NOT] SUCCESSFUL;
引數如下:
sql_statement_clause 包含很多條不同的資訊,例如希望審計的SQL 語句型別以及審計什麼人。
by access 在每次動作發生時都對其進行審計,by session 只審計一次。預設是by session。
whenever successful 審計成功的動作:沒有生成錯誤訊息的語句。
whenever not successful 審計語句的命令是否失敗
對於大多數類別的審計方法,如果確實希望審計所有型別的表訪問或某個使用者的任何許可權,則可以指定all 而不是單個的語句型別或物件。
表1-1 列出了可以審計的語句型別,並且在每個類別中包含了相關語句的簡要描述。如果指定all,則審計該列表中的任何語句。然而,表1-2 中的語句型別在啟用審計時不屬於all 類別;必須在audit 命令中顯式地指定它們。
表1-1 包括在ALL 類別中的可審計語句
語 句 選 項 |
SQL 操作 |
ALTER SYSTEM |
所有ALTER SYSTEM 選項,例如,動態改變例項參 數,切換到下一個日誌檔案組,以及終止使用者會話 |
CLUSTER |
CREATE、ALTER、DROP 或TRUNCATE 叢集 |
CONTEXT |
CREATE CONTEXT 或DROP CONTEXT |
DATABASE LINK |
CREATE 或DROP 資料庫連結 |
DIMENSION |
CREATE、ALTER 或DROP 維數 |
DIRECTORY |
CREATE 或DROP 目錄 |
INDEX |
CREATE、ALTER 或DROP 索引 |
MATERIALIZED VIEW |
CREATE、ALTER 或DROP 物化檢視 |
NOT EXISTS |
由於不存在的引用物件而造成的SQL 語句的失敗 |
PROCEDURE |
CREATE 或DROP FUNCTION、LIBRARY、PACKAGE、 PACKAGE BODY 或PROCEDURE |
PROFILE |
CREATE、ALTER 或DROP 配置檔案 |
PUBLIC DATABASE LINK |
CREATE 或DROP 公有資料庫連結 |
PUBLIC SYNONYM |
CREATE 或DROP 公有同義詞 |
ROLE |
CREATE、ALTER、DROP 或SET 角色 |
ROLLBACK |
SEGMENT CREATE、ALTER 或DROP 回滾段 |
SEQUENCE |
CREATE 或DROP 序列 |
SESSION |
登入和退出 |
SYNONYM |
CREATE 或DROP 同義詞 |
SYSTEM |
AUDIT 系統許可權的AUDIT 或NOAUDIT |
SYSTEM GRANT |
GRANT 或REVOKE 系統許可權和角色 |
TABLE |
CREATE、DROP 或TRUNCATE 表 |
TABLESPACE |
CREATE、ALTER 或DROP 表空間 |
TRIGGER |
CREATE、ALTER(啟用/禁用)、DROP 觸發器;具有 ENABLE ALL TRIGGERS 或DISABLE ALL TRIGGERS 的ALTER TABLE |
TYPE |
CREATE、ALTER 和DROP 型別以及型別主體 |
USER |
CREATE、ALTER 或DROP 使用者 |
VIEW |
CREATE 或DROP 檢視 |
表1-2 顯式指定的語句型別
語 句 選 項 |
SQL 操 作 |
ALTER SEQUENCE |
任何ALTER SEQUENCE 命令 |
ALTER TABLE |
任何ALTER TABLE 命令 |
COMMENT TABLE |
新增註釋到表、檢視、物化檢視或它們中的任何列 |
DELETE TABLE |
刪除表或檢視中的行 |
EXECUTE PROCEDURE |
執行程式包中的過程、函式或任何變數或遊標 |
GRANT DIRECTORY |
GRANT 或REVOKE DIRECTORY 物件上的許可權 |
GRANT PROCEDURE |
GRANT 或REVOKE 過程、函式或程式包上的許可權 |
GRANT SEQUENCE |
GRANT 或REVOKE 序列上的許可權 |
GRANT TABLE |
GRANT 或REVOKE 表、檢視或物化檢視上的許可權 |
GRANT TYPE |
GRANT 或REVOKE TYPE 上的許可權 |
INSERT TABLE |
INSERT INTO 表或檢視 |
LOCK TABLE |
表或檢視上的LOCK TABLE 命令 |
SELECT SEQUENCE |
引用序列的CURRVAL 或NEXTVAL 的任何命令 |
SELECT TABLE |
SELECT FROM 表、檢視或物化檢視 |
UPDATE TABLE |
在表或檢視上執行UPDATE |
注意:
從Oracle Database 11g 開始,只有在初始引數AUDIT_TRAIL 被設定為DB_EXTENDED 時,才填充DBA_AUDIT_TRAIL 中的列SQL_TEXT 和SQL_BIND。預設情況下,AUDIT_TRAIL 的值是DB。
示例:
[oracle@ocp Desktop]$ rlwrap sqlplus / as sysdba
SYS@orcl>show parameter audit_trail
SYS@orcl> alter system set audit_trail=db_extended
scope=spfile;
SYS@orcl> startup force
SYS@orcl>show parameter audit_trail
SYS@orcl> alter user scott account unlock identified by
scott;
SYS@orcl> audit create table by scott by access;
SYS@orcl>select user_name,audit_option,success,failure from
dba_stmt_audit_opts where user_name='SCOTT';
SYS@orcl> conn scott/scott
SCOTT@orcl> create table tt(id int);
SCOTT@orcl> conn / as sysdba
SYS@orcl>select username,to_char(timestamp,'MM/DD/YY
HH24:MI') Timestamp,obj_name, action_name, sql_text from
dba_audit_trail where username= 'SCOTT';
使用noaudit 命令關閉審計,如下所示:
SYS@orcl> noaudit create table by scott;
SYS@orcl> conn scott/scott
SCOTT@orcl> create table ee(id int);
SCOTT@orcl> conn / as sysdba
SYS@orcl>select username,to_char(timestamp,'MM/DD/YY
HH24:MI') Timestamp,obj_name, action_name, sql_text from
dba_audit_trail where username= 'SCOTT';
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31520497/viewspace-2156866/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL審計auditMySql
- ORACLE AUDIT審計(1)Oracle
- SQL Server 審計(Audit)SQLServer
- 【AUDIT]Oracle審計配置及常用sqlOracleSQL
- MySQL審計外掛-MariaDB Audit PluginMySqlPlugin
- FGA審計及audit_trail引數AI
- mysql 5.7新增server_audit 安全審計功能MySqlServer
- Oracle Audit 審計功能的認識與使用Oracle
- Oracle 標準審計,設定AUDIT_SYSLOG _LEVEL引數Oracle
- Java程式碼審計篇 - ofcms系統審計思路講解 - 篇2 - SQL隱碼攻擊漏洞審計JavaSQL
- [20191128]oracle Audit檔案管理2.txtOracle
- PHP程式碼審計——Day2-TwigPHP
- ORACLE AUDITOracle
- DM7審計之物件審計物件
- mysqlalchemy audit extensionMySql
- audit by user by table
- Oracle Audit setupOracle
- [20191128]11GR2 asm例項audit檔案.txtASM
- php程式碼審計分段學習(php_bug)[2]PHP
- DM7審計之語句序列審計
- DM7審計之語句級審計
- Java程式碼審計篇 - ofcms系統審計思路講解 - 篇4 - XXE漏洞審計Java
- Oracle審計(轉)Oracle
- Kubernetes 審計(Auditing)
- IT審計隨想
- Oracle:審計清理Oracle
- fluentd 推送 mariadb audit log
- 2.2.6 Overview of Common Audit ConfigurationsView
- linux監控工具auditLinux
- Java程式碼審計篇 - ofcms系統審計思路講解 - 篇3 - 檔案上傳漏洞審計Java
- vertica審計日誌
- buu 程式碼審計
- JFinalcms程式碼審計
- CSCMS程式碼審計
- Spring Data Commons審計Spring
- 什麼是程式碼審計?程式碼審計有什麼好處?
- 基於Java關鍵詞審計技巧?網路安全原始碼審計Java原始碼
- [20180525]丟失審計.txt