溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

【讀書筆記】數據庫審計

發(fā)布時間:2020-07-22 02:54:39 來源:網絡 閱讀:552 作者:三國冷 欄目:數據庫

數據庫版本: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 

一、審計類型

ORACLE的審計技術,除了SYSDBA審計之外,還有數據庫審計、基于值的審計、細粒度審計。

SQL> show parameter audit;

NAME                        TYPE        VALUE

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

audit_file_dest              string       /u01/app/oracle/admin/orcl/adump

audit_sys_operations           boolean      FALSE

audit_syslog_level            string      

audit_trail                 string       DB

1.1 SYSDBA審計

audit_sys_operations(默認為false)設置為TRUE,那么作為SYSDBA或SYSOPER連接數據庫的用戶所發(fā)布的每條語句都會被寫入操作系統(tǒng)審核跟蹤,從而能夠給出DBA所進行操作的完整記錄。

alter system set audit_sys_operations=TRUE scope=spfile;

之后重啟數據庫。

之后DBA的操作都會被記錄在審計文件中。

1.2 數據庫審計

設置數據庫審計之前,必須設置audit_trail的值,這個參數可以具有以下值:

NONE(或者FALSE):禁用數據庫審計

OS:審計記錄會被寫至操作系統(tǒng)的文件中;

DB:審計記錄寫到SYS.AUD$中。

DB_EXTENDED:與DB作用大體相同,不過包含生成審計記錄的、具有綁定變量的SQL語句。

XML:與OS作用大體相同,但使用XML標記設置格式。

XML_EXTENDED:與XML作用大體相同,但使用SQL語句和綁定變量。

例如對scott上的emp表做審核

如果audit_trail的值是“DB",那么就看不到執(zhí)行的語句,因此修改成:

alter system set audit_trail=DB_EXTENDED scope=spfile;

重啟數據庫。

audit select,delete,update on scott.emp by access;

--關閉審計:noaudit

select * from emp;

update emp

set comm=1500

where empno=7900;

insert into emp

select 7935,ename,job,mgr,hiredate,sal,comm,deptno

from emp

where empno=7934;

delete from emp 

where empno=7935;

--查看審計信息

select OS_USERNAME,username,USERHOST,TERMINAL,TIMESTAMP,OWNER,obj_name,ACTION_NAME,

sessionid,os_process,sql_text

  from dba_audit_trail

  where obj_name='EMP'

  order by timestamp desc;

如果audit_trail的值是DB,則看不到sql_text的信息,因此將audit_trail修改成db_extended,重新運行一次。

1.3 基于觸發(fā)器執(zhí)行基于值的審計

使用觸發(fā)器配合審計,將變更的值記錄到某個表中。即使不配置審計策略,也可以執(zhí)行。

例如,我們對scott.emp表上comm列的變更值比較感興趣,就可以建立一個觸發(fā)器,將操作的值寫入到表中。

create table AUDIT_VALUE_TRAIL

(

  terminal     VARCHAR2(256),

  sessionid    VARCHAR2(256),

  isdba        VARCHAR2(256),

  current_user VARCHAR2(256),

  os_user      VARCHAR2(256),

  ip_address   VARCHAR2(256),

  obj_user     VARCHAR2(10),

  obj_name     VARCHAR2(22),

  act_value    VARCHAR2(255)

);

create or replace trigger tri_emp_audit

after update of comm on scott.emp

referencing new as new old as old

for each row

begin

if :old.comm !=:new.comm then

insert into sys.audit_value_trail

values(SYS_CONTEXT('USERENV','TERMINAL'),

SYS_CONTEXT('USERENV','sessionid'),

SYS_CONTEXT('USERENV','ISDBA'),

SYS_CONTEXT('USERENV','CURRENT_USER'),

SYS_CONTEXT('USERENV','OS_USER'),

SYS_CONTEXT('USERENV','IP_ADDRESS'),

'scott','emp',:new.empno||' comm is  changed from '||:old.comm ||'to '||:new.comm );

end if;

end;

/

執(zhí)行:

update emp

set comm=2000

where empno=7900;

commit;

對比dba_audit_trail、audit_value_trail的結果是否一樣。


1.4 細粒度審計(FGA)

細粒度審計可以配置為只在訪問特定行或特定行的特定列時生成審計記錄,此外還可以配置為在違反審計條件時運行一個PL/SQL代碼塊。

配置FGA將會涉及包DBMS_FGA,為了創(chuàng)建一個FGA審計策略,需要使用add_policy過程,這個過程接受下表所示的參數:


參考資料:《OCP/OCA 認證考試指南全冊》 第六章:ORACLE安全性 第6節(jié)使用標準數據庫審核

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI