標準資料審計

靜以致遠√團團發表於2014-05-12

審計(Audit)用於監視使用者所執行的資料庫操作,並且Oracle會將審計跟蹤結果存放到OS檔案或資料庫中。預設情況下審計是沒有開啟的。不管你是否開啟資料庫的審計功能,以下這些作業系統會強制記錄:用管理員許可權連線Instance;啟動資料庫;關閉資料庫。

 

開啟標準資料庫審計

 

AUDIT_TRAIL的取值如下:

DB/TRUE:啟動審計功能,並且把審計結果存放在資料庫的SYS.AUD$表中

OS:啟動審計功能,並把審計結果存放在作業系統的審計資訊中

DB_EXTENDED:具有DB/TRUE的功能,另外填寫AUD$的SQLBIND和SQLTEXT欄位

NONE/FALSE:關閉審計功能

 

果設定AUDIT_TRAIL = OS,還需要修改引數AUDIT_FILE_DEST。

如果作業系統支援設定AUDIT_TRAIL=OS,檔案會自動存放在AUDIT_FILE_DEST所指定的目錄下,並且檔名包含程式的PID。

 

SQL> alter system set audit_trail=db scope=spfile;

System altered.

 

該引數是static引數,需要重新啟動資料庫才能生效

SQL> startup force;

ORACLE instance started.

Total System Global Area  167772160 bytes

Fixed Size                  1218316 bytes

Variable Size              92276980 bytes

Database Buffers           71303168 bytes

Redo Buffers                2973696 bytes

Database mounted.

Database opened.

 

審計系統許可權:

審計scott使用者delete any table的許可權

SQL> audit delete any table by scott by session;

Audit succeeded.

 

SQL> grant delete any table to scott;

Grant succeeded.

 

SQL> conn scott/oracle

Connected.

 

SQL> delete hr.aud_test;

19 rows deleted.

 

SQL> commit;

Commit complete.

 

SQL> select username,timestamp,ses_actions,obj_name,action_name from dba_audit_trail;

USERNAME   TIMESTAMP SES_ACTIONS       OBJ_NAME   ACTION_NAME

---------- --------- ----------------- ---------- ------------

SCOTT      11-MAY-14 ---S------------  AUD_TEST   SESSION REC

 

 

SES_ACTIONS的含義:

 

1 2 3 4 5 6 7 8 9

更改 審計 註釋 刪除 授權 索引 插入 鎖定 重新命名

 

10 11 12 13 14             15            16

選擇 更新 引用 執行 未使用 未使用 未使用

 

S表示成功的意思,恰好上面的S位於10,也就是對錶的select成功。

上面的S不是select的意思。另外一個就是FSF是相對的。

B表示既有成功、也有失敗。

如果使用的是by access,那麼SES_ACTIONS列為空,具體的操作顯示在ACTION_NAME列中。

因此SES_ACTIONS只是對by session有意義。

 

審計物件許可權:

 

SQL> audit delete on hr.aud_test by session;

Audit succeeded.

 

SQL> conn scott/oracle

Connected.

 

SQL> delete from hr.aud_test where rownum<2;

1 rows deleted.

 

SQL> conn / as sysdba

Connected.

 

SQL> select username,timestamp,ses_actions,obj_name,action_name from dba_audit_trail;

 

USERNAME   TIMESTAMP SES_ACTIONS       OBJ_NAME   ACTION_NAME

---------- --------- ----------------- ---------- ------------

SCOTT      11-MAY-14 ---S------------  AUD_TEST   SESSION REC

SCOTT      12-MAY-14 ---S------------  AUD_TEST   SESSION REC

 

審計SQL語句:

 

SQL> truncate table aud$;

Table truncated.

 

SQL> audit table by scott by session;

Audit succeeded.

 

SQL> conn scott/oracle

Connected.

 

SQL> drop table test;

Table dropped.

 

SQL> conn / as sysdba

Connected.

 

SQL> select username,timestamp,ses_actions,obj_name,action_name from dba_audit_trail;

USERNAME   TIMESTAMP SES_ACTIONS       OBJ_NAME   ACTION_NAME

---------- --------- ----------------- ---------- ------------

SCOTT      12-MAY-14                   TEST       DROP TABLE

 

審計普通使用者登入:

 

SQL> truncate table aud$;

Table truncated.

 

SQL> audit session;

Audit succeeded.

 

SQL> conn scott/123

ERROR:

ORA-01017: invalid username/password; logon denied

Warning: You are no longer connected to ORACLE.

 

SQL> conn scott/123

ERROR:

ORA-01017: invalid username/password; logon denied

 

SQL> conn / as sysdba

Connected.

SQL> select username,timestamp,ses_actions,obj_name,action_name from dba_audit_trail;

 

USERNAME   TIMESTAMP SES_ACTIONS       OBJ_NAME   ACTION_NAME

---------- --------- ----------------- ---------- ------------

SCOTT      12-MAY-14                              LOGON

SCOTT      12-MAY-14                              LOGON

 

檢視登入資訊,確定哪些使用者存在安全隱患:

 

SQL> select to_char(timestamp,'yyyy-mm-dd hh24:mi:ss') fail_time,count(*) fail_count

  2  from dba_audit_trail

  3  where returncode=1017

  4  and username='SCOTT'

  5  group by to_char(timestamp,'yyyy-mm-dd hh24:mi:ss')

  6  ;

 

FAIL_TIME           FAIL_COUNT

------------------- ----------

2014-05-12 09:02:37          1

2014-05-12 09:02:36          1

 

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29320885/viewspace-1158915/,如需轉載,請註明出處,否則將追究法律責任。

相關文章