亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Oracle 11G數(shù)據(jù)庫審計(jì)監(jiān)控設(shè)置指南

 更新時間:2024年10月08日 10:02:28   作者:ciqingloveless  
Oracle 11G數(shù)據(jù)庫審計(jì)監(jiān)控涉及創(chuàng)建獨(dú)立表空間、查看審計(jì)信息、遷移表空間、開啟審計(jì)及審計(jì)維護(hù)等步驟,合理規(guī)劃審計(jì)表空間有助于管理審計(jì)數(shù)據(jù),避免影響系統(tǒng)表空間,審計(jì)監(jiān)控涵蓋審計(jì)數(shù)據(jù)遷移、自動清理、權(quán)限分配、查詢審計(jì)類型等方面,確保數(shù)據(jù)庫安全性能

Oracle 11G 開啟審計(jì)監(jiān)控數(shù)據(jù)庫

1 創(chuàng)建審計(jì)數(shù)據(jù)專用表空間

由于審計(jì)數(shù)據(jù)可能占用大量空間,所以放入默認(rèn)的system表空間顯然是不合理的,所以我們應(yīng)該創(chuàng)建專門的表空間以及用戶來保存審計(jì)數(shù)據(jù),這樣才是一個比較合理的規(guī)劃。

CREATE TABLESPACE AUDIT_TBS
  DATAFILE 
   '/data2/app/oracle/datafile/AUDIT_TBS1'SIZE 2048M AUTOEXTEND ON NEXT 512M MAXSIZE UNLIMITED,
	'/data2/app/oracle/datafile/AUDIT_TBS2'SIZE 2048M AUTOEXTEND ON NEXT 512M MAXSIZE UNLIMITED
  SEGMENT SPACE MANAGEMENT AUTO;

2 查看相關(guān)信息

select table_name,tablespace_name from dba_tables where table_name='AUD$';

1	AUD$	SYSTEM

select COLUMN_NAME,SEGMENT_NAME,tablespace_name from dba_lobs where table_name ='AUD$';

1	SQLBIND	SYS_LOB0000000407C00040$$	SYSTEM
2	SQLTEXT	SYS_LOB0000000407C00041$$	SYSTEM

select index_name,tablespace_name from dba_indexes where table_name ='AUD$';

1	SYS_IL0000000407C00040$$	SYSTEM
2	SYS_IL0000000407C00041$$	SYSTEM

3 在線移動至新的表空間

3.1 清空歷史審計(jì)信息

由于當(dāng)前數(shù)據(jù)庫可能已經(jīng)包含過去的審計(jì)信息,所以遷移的過程中比較慢,為了解決這個問題,可以先將現(xiàn)有的審計(jì)信息清空(當(dāng)然是業(yè)務(wù)允許情況下),清空語句如下:

sqlplus / as sysdba
truncate table sys.aud$;

3.2 遷移表空間

sqlplus / as sysdba

alter table aud$ move tablespace AUDIT_TBS;
alter table AUD$ move lob(SQLBIND) store as SYS_LOB0000000407C00040$$ (tablespace AUDIT_TBS);
alter table AUD$ move lob(SQLTEXT) store as SYS_LOB0000000407C00041$$(tablespace AUDIT_TBS);
alter table AUD$ move lob(SQLBIND) store as SYS_IL0000000407C00040$$ (tablespace AUDIT_TBS);
alter table AUD$ move lob(SQLTEXT) store as SYS_IL0000000407C00041$$(tablespace AUDIT_TBS);

注:上面的SYS_LOB0000000407C00040$$類似的文件名稱是由步驟2查詢而得。

3.3 開啟審計(jì)

sqlplus / as sysdb
alter system set audit_sys_operations=true scope=spfile;
alter system set audit_trail=db,extended scope=spfile;
shutdown immediate
startup

4 審計(jì)功能的一些相關(guān)維護(hù)

以下所有語句都在SYS用戶下執(zhí)行

sqlplus / as sysdba

4.1 審計(jì)數(shù)據(jù)遷移(另一種方案)

BEGIN
  DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_LOCATION(
    AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,
    AUDIT_TRAIL_LOCATION_VALUE => 'AUDIT_TBS'
  );
END;
/

4.2 審計(jì)數(shù)據(jù)自動清理

由于審計(jì)日志的數(shù)據(jù)可能比較多,所以需要定期清理數(shù)據(jù),保證數(shù)據(jù)庫相關(guān)性能

begin
  dbms_audit_mgmt.init_cleanup(
    audit_trail_type            => dbms_audit_mgmt.audit_trail_all,
    default_cleanup_interval    => 24 );
end;
/

這個INIT_CLEANUP過程設(shè)計(jì)到兩個參數(shù):

  • audit_trail_type:指要設(shè)置的清理類型,這里是audit_trail_db_std,標(biāo)準(zhǔn)的數(shù)據(jù)庫審計(jì)跟蹤,即aud$表。
  • default_cleanup_interval:這個值表示每隔多少時間執(zhí)行清理任務(wù),24即24小時。

相關(guān)審計(jì)類型:

  • audit_trail_aud_std:The standard AUD$ audit trail in the database
  • audit_trail_fga_std:The FGA_LOG$ table, for Fine Grained Auditing
  • audit_trail_db_std:Both standard and FGA audit trails
  • audit_trail_os:The OS audit trail
  • audit_trail_xml:The XML audit trail
  • audit_trail_files:Both OS and XML audit trails
  • audit_trail_all:All of the above

設(shè)置完初始化清理參數(shù)后,實(shí)際上在調(diào)用清理任務(wù)時,會發(fā)現(xiàn)并沒有達(dá)到你的預(yù)期,可能數(shù)據(jù)一條都沒有清理掉,我們還需要設(shè)置另一個過程參數(shù)SET_LAST_ARCHIVE_TIMESTAMP,它的作用是告訴清理進(jìn)程一個審計(jì)歸檔時間戳,

這個過程接收三個參數(shù):

  • audit_trail_type:要清理的審計(jì)類型,如audit_trail_aud_std
  • last_archive_time:最后一次歸檔時間,可以手工設(shè)置
  • rac_instance_number:RAC的話可以指定實(shí)例號

代碼如下

begin
   dbms_audit_mgmt.set_last_archive_timestamp(
     audit_trail_type  => dbms_audit_mgmt.audit_trail_aud_std,
     last_archive_time =>
        to_timestamp('2020-05-26 10:00:00','YYYY-MM-DD HH24:MI:SS'),
     rac_instance_number  => null
   );

end;

/

執(zhí)行上段程序后,你可以在DBA_AUDIT_MGMT_LAST_ARCH_TS視圖中查到相關(guān)信息。

有了歸檔時間后,就可以執(zhí)行真正的清理程序了。

begin
  dbms_audit_mgmt.clean_audit_trail(
   audit_trail_type        =>  dbms_audit_mgmt.audit_trail_aud_std,
   use_last_arch_timestamp => TRUE
  );
end;
/
  • audit_trail_type表示清理的審計(jì)類型,
  • use_last_arch_timestamp => TRUE,表示用最后的歸檔時間,如果為false,將會清理掉audit_trail_aud_std類型的所有審計(jì)信息。

上面是手工清理的方法,設(shè)置了清理時間點(diǎn)后運(yùn)行清理過程。下一步看自動清理怎么做:

將采用數(shù)據(jù)庫的自動任務(wù)來實(shí)現(xiàn),第一個任務(wù),自動產(chǎn)生清理時間點(diǎn):

BEGIN
  DBMS_SCHEDULER.CREATE_JOB (
    job_name   => 'DAILY_AUDIT_ARCHIVE_TIMESTAMP',
    job_type   => 'PLSQL_BLOCK',
    job_action => 'BEGIN DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(AUDIT_TRAIL_TYPE =>
                   DBMS_AUDIT_MGMT.audit_trail_all,LAST_ARCHIVE_TIME => sysdate-1); END;',
    start_date => sysdate,
    repeat_interval => 'FREQ=HOURLY;INTERVAL=24',
    enabled    =>  TRUE,
    comments   => 'Create an archive timestamp'
  );
END;

/

第二個任務(wù),根據(jù)時間點(diǎn)自動清理:

BEGIN
  DBMS_AUDIT_MGMT.CREATE_PURGE_JOB(
    AUDIT_TRAIL_TYPE           => DBMS_AUDIT_MGMT.audit_trail_all,
    AUDIT_TRAIL_PURGE_INTERVAL => 24 /* hours */,
    AUDIT_TRAIL_PURGE_NAME     => 'DAILY_AUDIT_PURGE_JOB',
    USE_LAST_ARCH_TIMESTAMP    => TRUE
  );
END;
/

刪除DAILY_AUDIT_PURGE_JOB與DAILY_AUDIT_ARCHIVE_TIMESTAMP

exec dbms_scheduler.drop_job( job_name =>  'SYS.DAILY_AUDIT_ARCHIVE_TIMESTAMP' , force => TRUE);
exec SYS.DBMS_AUDIT_MGMT.DROP_PURGE_JOB( AUDIT_TRAIL_PURGE_NAME => 'DAILY_AUDIT_PURGE_JOB');

5 將審計(jì)權(quán)限賦予其他用戶

sqlplus / as sysdba
grant select on sys.aud$ to dataaly;           -----賦予新用戶查詢審計(jì)信息
grant select on sys.dba_fga_audit_trail to dataaly; ----賦予新用戶查詢審計(jì)信息

6 查詢所有可以設(shè)定的審計(jì)類型

select user_name,audit_option,success,failure from dba_stmt_audit_opts
union
select USER_NAME,privilege,success,failure from dba_priv_audit_opts;

7 下表中總結(jié)了Oracle數(shù)據(jù)庫中不同類型的審計(jì)。

審 計(jì) 類 型說 明
語句審計(jì)按照語句類型審計(jì)SQL語句,而不論訪問何種特定的模式對象。也可以在數(shù)據(jù)庫中指定一個或多個用戶,針對特定的語句審計(jì)這些用戶
權(quán)限審計(jì)審計(jì)系統(tǒng)權(quán)限,例如CREATE TABLE或ALTER INDEX。和語句審計(jì)一樣,權(quán)限審計(jì)可以指定一個或多個特定的用戶作為審計(jì)的目標(biāo)
模式對象審計(jì)審計(jì)特定模式對象上運(yùn)行的特定語句(例如,DEPARTMENTS表上的UPDATE語句)。模式對象審計(jì)總是應(yīng)用于數(shù)據(jù)庫中的所有用戶
細(xì)粒度的審計(jì)根據(jù)訪問對象的內(nèi)容來審計(jì)表訪問和權(quán)限。使用程序包DBMS_FGA來建立特定表上的策略

下面幾節(jié)介紹DBA如何管理系統(tǒng)和對象權(quán)限使用的審計(jì)。當(dāng)需要一定的粒度時,DBA可以使用細(xì)粒度的審計(jì)來監(jiān)控對表中某些行或列的訪問,而不僅僅是是否訪問表。

和審計(jì)相關(guān)的主要參數(shù)

SQL>show parameter audit

audit_file_dest
audit_sys_operations
audit_trail

audit_sys_operations:

  • 默認(rèn)為false,當(dāng)設(shè)置為true時,所有sys用戶(包括以sysdba,sysoper身份登錄的用戶)的操作都會被記錄,audit trail不會寫在aud 表 中 , 這 個 很 好 理 解 , 如 果 數(shù) 據(jù) 庫 還 未 啟 動 a u d 表中,這個很好理解,如果數(shù)據(jù)庫還未啟動aud ,數(shù)據(jù)aud不可用,那么像conn /as sysdba這樣的連接信息,只能記錄在其它地方。如果是windows平臺,audti trail會記錄在windows的事件管理中,如果是linux/unix平臺則會記錄在audit_file_dest參數(shù)指定的文件中。

audit_trail:

  • None:是默認(rèn)值,不做審計(jì);
  • DB:將audit trail 記錄在數(shù)據(jù)庫的審計(jì)相關(guān)表中,如aud$,審計(jì)的結(jié)果只有連接信息;
  • DB,Extended:這樣審計(jì)結(jié)果里面除了連接信息還包含了當(dāng)時執(zhí)行的具體語句;
  • OS:將audit trail 記錄在操作系統(tǒng)文件中,文件名由audit_file_dest參數(shù)指定;

7.1 語句審計(jì)

所有類型的審計(jì)都使用audit命令來打開審計(jì),使用noaudit命令來關(guān)閉審計(jì)。對于語句審計(jì),audit命令的格式看起來如下所示:

AUDIT sql_statement_clause BY {SESSION | ACCESS} WHENEVER [NOT] SUCCESSFUL;

sql_statement_clause包含很多條不同的信息,例如希望審計(jì)的SQL語句類型以及審計(jì)么人。

此外,希望在每次動作發(fā)生時都對其進(jìn)行審計(jì)(by access)或者只審計(jì)一次(by session)。默認(rèn)是by session。

有時希望審計(jì)成功的動作:沒有生成錯誤消息的語句。對于這些語句,添加whenever successful。而有時只關(guān)心使用審計(jì)語句的命令是否失敗,失敗原因是權(quán)限違犯、用完表空間中的空間還是語法錯誤。對于這些情況,使用 whenever not successful。

對于大多數(shù)類別的審計(jì)方法,如果確實(shí)希望審計(jì)所有類型的表訪問或某個用戶的任何權(quán)限,則可以指定all而不是單個的語句類型或?qū)ο蟆?/p>

表1列出了可以審計(jì)的語句類型,并且在每個類別中包含了相關(guān)語句的簡要描述。如果指定all,則審計(jì)該列表中的任何語句。然而,表2中的語句類型在啟用審計(jì)時不屬于all類別;必須在audit命令中顯式地指定它們。

表1 包括在ALL類別中的可審計(jì)語句

語 句 選 項(xiàng)SQL操作
ALTER SYSTEM所有ALTER SYSTEM選項(xiàng),例如,動態(tài)改變實(shí)例參數(shù),切換到下一個日志文件組,以及終止用戶會話
CLUSTERCREATE、ALTER、DROP或TRUNCATE集群
CONTEXTCREATE CONTEXT或DROP CONTEXT
DATABASE LINKCREATE或DROP數(shù)據(jù)庫鏈接
DIMENSIONCREATE、ALTER或DROP維數(shù)
DIRECTORYCREATE或DROP目錄
INDEXCREATE、ALTER或DROP索引
MATERIALIZED VIEWCREATE、ALTER或DROP物化視圖
NOT EXISTS由于不存在的引用對象而造成的SQL語句的失敗
PROCEDURECREATE或DROP FUNCTION、LIBRARY、PACKAGE、PACKAGE BODY或PROCEDURE
PROFILECREATE、ALTER或DROP配置文件
PUBLIC DATABASE LINKCREATE或DROP公有數(shù)據(jù)庫鏈接
PUBLIC SYNONYMCREATE或DROP公有同義詞
ROLECREATE、ALTER、DROP或SET角色
ROLLBACK SEGMENTCREATE、ALTER或DROP回滾段
SEQUENCECREATE或DROP序列
SESSION登錄和退出
SYNONYMCREATE或DROP同義詞
SYSTEM AUDIT系統(tǒng)權(quán)限的AUDIT或NOAUDIT
SYSTEM GRANTGRANT或REVOKE系統(tǒng)權(quán)限和角色
TABLECREATE、DROP或TRUNCATE表
TABLESPACECREATE、ALTER或DROP表空間
TRIGGERCREATE、ALTER(啟用/禁用)、DROP觸發(fā)器;具有ENABLE ALL TRIGGERS或DISABLE ALL TRIGGERS的ALTER TABLE
TYPECREATE、ALTER和DROP類型以及類型主體
USERCREATE、ALTER或DROP用戶
VIEWCREATE或DROP視圖

表2 顯式指定的語句類型

語 句 選 項(xiàng)SQL 操 作
ALTER SEQUENCE任何ALTER SEQUENCE命令
ALTER TABLE任何ALTER TABLE命令
COMMENT TABLE添加注釋到表、視圖、物化視圖或它們中的任何列
DELETE TABLE刪除表或視圖中的行
EXECUTE PROCEDURE執(zhí)行程序包中的過程、函數(shù)或任何變量或游標(biāo)
GRANT DIRECTORYGRANT或REVOKE DIRECTORY對象上的權(quán)限
GRANT PROCEDUREGRANT或REVOKE過程、函數(shù)或程序包上的權(quán)限
GRANT SEQUENCEGRANT或REVOKE序列上的權(quán)限
GRANT TABLEGRANT或REVOKE表、視圖或物化視圖上的權(quán)限
GRANT TYPEGRANT或REVOKE TYPE上的權(quán)限
INSERT TABLEINSERT INTO表或視圖
LOCK TABLE表或視圖上的LOCK TABLE命令
SELECT SEQUENCE引用序列的CURRVAL或NEXTVAL的任何命令
SELECT TABLESELECT FROM表、視圖或物化視圖
UPDATE TABLE在表或視圖上執(zhí)行UPDATE

注意:

從Oracle Database 11g開始,只有在初始參數(shù)AUDIT_TRAIL被設(shè)置為DB_EXTENDED時,才填充DBA_AUDIT_TRAIL中的列SQL_TEXT和SQL_BIND。默認(rèn)情況下,AUDIT_TRAIL的值是DB。

SQL> audit index by dataaly;
Audit succeeded.

為了關(guān)閉HR.JOBS表上KSHELTON的審計(jì),可以使用noaudit命令,如下所示:

SQL> noaudit index by dataaly;
Noaudit succeeded.

也可能希望按常規(guī)方式審計(jì)成功的和不成功的登錄,這需要兩個audit命令:

SQL> audit session whenever successful;
Audit succeeded.
SQL> audit session whenever not successful;
Audit succeeded.

7.2 權(quán)限審計(jì)

審計(jì)系統(tǒng)權(quán)限具有與語句審計(jì)相同的基本語法,但審計(jì)系統(tǒng)權(quán)限是在sql_stateme nt_clause中,而不是在語句中,指定系統(tǒng)權(quán)限。

例如,可能希望將ALTER TABLESPACE權(quán)限授予所有的DBA,但希望在發(fā)生這種情況時生成審計(jì)記錄。啟用對這種權(quán)限的審計(jì)的命令看起來類似于語句審計(jì):

SQL> audit alter tablespace by access whenever successful;
Audit succeeded.

每次成功使用ALTER TABLESPACE權(quán)限時,都會將一行內(nèi)容添加到SYS.AUD$。

使用SYSDBA和SYSOPER權(quán)限或者以SYS用戶連接到數(shù)據(jù)庫的系統(tǒng)管理員可以利用特殊的審計(jì)。為了啟用這種額外的審計(jì)級別,可以設(shè)置初始參數(shù)AUDIT_SYS_OPERATIONS為TRUE。

這種審計(jì)記錄發(fā)送到與操作系統(tǒng)審計(jì)記錄相同的位置。因此,這個位置是和操作系統(tǒng)相關(guān)的。當(dāng)使用其中一種權(quán)限時執(zhí)行的所有SQL語句,以及作為用戶SYS執(zhí)行的任何SQL語句,都會發(fā)送到操作系統(tǒng)審計(jì)位置。

7.3 模式對象審計(jì)

審計(jì)對各種模式對象的訪問看起來類似于語句審計(jì)和權(quán)限審計(jì):

AUDIT schema_object_clause BY {SESSION | ACCESS}
WHENEVER [NOT] SUCCESSFUL;

schema_object_clause指定對象訪問的類型以及訪問的對象。可以審計(jì)特定對象上14種不同的操作類型,下表中列出了這些操作。

對 象 選 項(xiàng)說 明
ALTER改變表、序列或物化視圖
AUDIT審計(jì)任何對象上的命令
COMMENT添加注釋到表、視圖或物化視圖
DELETE從表、視圖或物化視圖中刪除行
EXECUTE執(zhí)行過程、函數(shù)或程序包
FLASHBACK執(zhí)行表或視圖上的閃回操作
GRANT授予任何類型對象上的權(quán)限
INDEX創(chuàng)建表或物化視圖上的索引
INSERT將行插入表、視圖或物化視圖中
LOCK鎖定表、視圖或物化視圖
READ對DIRECTORY對象的內(nèi)容執(zhí)行讀操作
RENAME重命名表、視圖或過程
SELECT從表、視圖、序列或物化視圖中選擇行
UPDATE更新表、視圖或物化視圖

如果希望審計(jì)HR.JOBS表上的所有insert和update命令,而不管誰正在進(jìn)行更新,則每次該動作發(fā)生時,都可以使用如下所示的audit命令:

SQL> audit insert, update on hr.jobs by access whenever successful;
Audit successful.

7.4 細(xì)粒度的審計(jì)

從Oracle9i開始,通過引入細(xì)粒度的對象審計(jì),或稱為FGA,審計(jì)變得更為關(guān)注某個方面,并且更為精確。由稱為DBMS_FGA的PL/SQL程序包實(shí)現(xiàn)FGA。

使用標(biāo)準(zhǔn)的審計(jì),可以輕松發(fā)現(xiàn)訪問了哪些對象以及由誰訪問,但無法知道訪問了哪些行或列。細(xì)粒度的審計(jì)可解決這個問題,它不僅為需要訪問的行指定謂詞(或where子句),還指定了表中訪問的列。通過只在訪問某些行和列時審計(jì)對表的訪問,可以極大地減少審計(jì)表?xiàng)l目的數(shù)量。

程序包DBMS_FGA具有4個過程:

ADD_POLICY添加使用謂詞和審計(jì)列的審計(jì)策略
DROP_POLICY刪除審計(jì)策略
DISABLE_POLICY禁用審計(jì)策略,但保留與表或視圖關(guān)聯(lián)的策略
ENABLE_POLICY啟用策略

用戶TAMARA通常每天訪問HR.EMPLOYEES表,查找雇員的電子郵件地址。系統(tǒng)管理員懷疑TAMARA正在查看經(jīng)理們的薪水信息,因此他們建立一個FGA策略,用于審計(jì)任何經(jīng)理對SALARY列的任何訪問:

begin
dbms_fga.add_policy(
object_schema =>   'HR',
object_name =>     'EMPLOYEES',
policy_name =>     'SAL_SELECT_AUDIT',
audit_condition => 'instr(job_id,''_MAN'') > 0',
audit_column =>    'SALARY'
);
end;

可以使用數(shù)據(jù)字典視圖DBA_FGA_AUDIT_TRAIL訪問細(xì)粒度審計(jì)的審計(jì)記錄。如果一般需要查看標(biāo)準(zhǔn)的審計(jì)行和細(xì)粒度的審計(jì)行,則數(shù)據(jù)字典視圖DBA_COMMON_AUDIT_TRAIL結(jié)合了這兩種審計(jì)類型中的行。

繼續(xù)看示例,用戶TAMARA運(yùn)行了如下兩個SQL查詢:

SQL> select employee_id, first_name, last_name, email from hr.employees
2     where employee_id = 114;
EMPLOYEE_ID FIRST_NAME           LAST_NAME                 EMAIL
----------- ------------------ ---------------------   --------------
114    Den                   Raphaely                  DRAPHEAL
1 row selected.
SQL> select employee_id, first_name, last_name, salary from hr.employees
2     where employee_id = 114;
EMPLOYEE_ID FIRST_NAME           LAST_NAME                     SALARY
----------- ------------------ -----------------------   ----------
114    Den                   Raphaely                       11000
1 row selected.

第一個查詢訪問經(jīng)理信息,但沒有訪問SALARY列。第二個查詢與第一個查詢相同,但是訪問了SALARY列,因此觸發(fā)了FGA策略,從而在審計(jì)跟蹤中生成了一行:

SQL> select to_char(timestamp,'mm/dd/yy hh24:mi') timestamp,
2      object_schema, object_name, policy_name, statement_type
3  from dba_fga_audit_trail
4  where db_user = 'TAMARA';
TIMESTAMP        OBJECT_SCHEMA  OBJECT_NAME     POLICY_NAME       STATEMENT_TYPE
--------------  -------------  -------------  ---------------- --------------
08/12/07 18:07  HR               EMPLOYEES       SAL_SELECT_AUDIT SELECT
1 row selected.

因?yàn)樵诒菊虑懊娴腣PD示例中建立了細(xì)粒度的訪問控制來阻止對SALARY列的未授權(quán)訪問,因此需要加倍檢查策略函數(shù),確保仍然正確限制了SALARY信息。細(xì)粒度的審計(jì)以及標(biāo)準(zhǔn)審計(jì)是確保首先正確建立授權(quán)策略的好方法。

7.5 與審計(jì)相關(guān)的數(shù)據(jù)字典視圖

下表包含了與審計(jì)相關(guān)的數(shù)據(jù)字典視圖。

數(shù)據(jù)字典視圖說 明
AUDIT_ACTIONS包含審計(jì)跟蹤動作類型代碼的描述,例如INSERT、DROP VIEW、DELETE、LOGON和LOCK
DBA_AUDIT_OBJECT與數(shù)據(jù)庫中對象相關(guān)的審計(jì)跟蹤記錄
DBA_AUDIT_POLICIES數(shù)據(jù)庫中的細(xì)粒度審計(jì)策略
DBA_AUDIT_SESSION與CONNECT和DISCONNECT相關(guān)的所有審計(jì)跟蹤記錄
DBA_AUDIT_STATEMENT與GRANT、REVOKE、AUDIT、NOAUDIT和ALTER SYSTEM命令相關(guān)的審計(jì)跟蹤條目
DBA_AUDIT_TRAIL包含標(biāo)準(zhǔn)審計(jì)跟蹤條目。USER_AUDIT_TRAILUSER_TRAIL_AUDIT只包含已連接用戶的審計(jì)行
DBA_FGA_AUDIT_TRAIL細(xì)粒度審計(jì)策略的審計(jì)跟蹤條目
DBA_COMMON_AUDIT_TRAIL將標(biāo)準(zhǔn)的審計(jì)行和細(xì)粒度的審計(jì)行結(jié)合在一個視圖中
DBA_OBJ_AUDIT_OPTS對數(shù)據(jù)庫對象生效的審計(jì)選項(xiàng)
DBA_PRIV_AUDIT_OPTS對系統(tǒng)權(quán)限生效的審計(jì)選項(xiàng)
DBA_STMT_AUDIT_OPTS對語句生效的審計(jì)選項(xiàng)

7.6 保護(hù)審計(jì)跟蹤

審計(jì)跟蹤自身需要受到保護(hù),特別是在非系統(tǒng)用戶必須訪問表SYS.AUD$時。內(nèi)置的角色DELETE_ANY_CATALOG是非SYS用戶可以訪問審計(jì)跟蹤的一種方法(例如,歸檔和截取審計(jì)跟蹤,以確保它不會影響到SYS表空間中其他對象的空間需求)。

為了建立對審計(jì)跟蹤自身的審計(jì),以SYSDBA身份連接到數(shù)據(jù)庫,并運(yùn)行下面的命令:

SQL> audit all on sys.aud$ by access;
Audit succeeded.

現(xiàn)在,所有針對表SYS.AUD 的 動 作 , 包 括 select 、insert、update 和 delete,都記錄在 SYS.AUD的動作,包括select、insert、update和delete,都記錄在SYS.AUD ,selectinsert、updatedeleteSYS.AUD自身中。但是,您可能會問,如果某個人刪除了標(biāo)識對表SYS.AUD 訪 問 的 審 計(jì) 記 錄 , 這 時 會 發(fā) 生 什 么 ? 此 時 將 刪 除 表 中 的 行 , 但 接 著 插 入 另 一 行 , 記 錄 行 的 刪 除 。 因 此 , 總 是 存 在 一 些 針 對 SYS.AUD 訪問的審計(jì)記錄,這時會發(fā)生什么?此時將刪除表中的行,但接著插入另一行,記錄行的刪除。因此,總是存在一些針對SYS.AUD 計(jì),發(fā),,。SYS.AUD表的(有意的或偶然的)活動的證據(jù)。此外,如果將AUDIT_SYS _OPERATIONS設(shè)置為True,使用as sysdba、as sysoper或以SYS自身連接的任何會話將記錄到操作系統(tǒng)審計(jì)位置中,甚至Oracle DBA可能都無法訪問該位置。因此,有許多合適的安全措施,用于確保記錄數(shù)據(jù)庫中所有權(quán)限的活動,以及隱藏該活動的任何嘗試。

7.7 啟用增強(qiáng)的審計(jì)

從Oracle Database 11g開始,數(shù)據(jù)庫配置助手(Database Configuration Assistant,DBCA)很容易啟用默認(rèn)的(增強(qiáng)的)審計(jì)。雖然記錄審計(jì)信息有一些系統(tǒng)開銷,但兼容性需求(例如,Sarbanes-Oxley法案中規(guī)定的兼容性需求)要求嚴(yán)格監(jiān)控所有業(yè)務(wù)操作,包括數(shù)據(jù)庫中與安全相關(guān)的操作。

可以在創(chuàng)建數(shù)據(jù)庫時或在數(shù)據(jù)庫已經(jīng)創(chuàng)建之后使用DBCA配置默認(rèn)審計(jì)。如果已經(jīng)改變了很多審計(jì)設(shè)置,并想要將審計(jì)選項(xiàng)重置為基線值,則在數(shù)據(jù)庫已創(chuàng)建之后使用DBCA配置默認(rèn)審計(jì)就非常有用。

除將初始參數(shù)AUDIT_TRAIL的值設(shè)置為DB外,默認(rèn)審計(jì)設(shè)置還審計(jì)audit role命令本身。另外,在Audited Privileges選項(xiàng)卡的Oracle Enterprise Manager Audit Settings頁面中,可以查看默認(rèn)的審計(jì)權(quán)限。

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論