審計機(jī)制是DM數(shù)據(jù)庫管理系統(tǒng)安全管理的重要組成部分之一。DM數(shù)據(jù)庫除了提供數(shù)據(jù)安全保護(hù)措施外,還提供對日常事件的事后審計監(jiān)督。DM具有一個靈活的審計子系統(tǒng),可以通過它來記錄系統(tǒng)級事件、個別用戶的行為以及對數(shù)據(jù)庫對象的訪問。通過考察、跟蹤審計信息,數(shù)據(jù)庫審計員可以查看用戶訪問的形式以及曾試圖對該系統(tǒng)進(jìn)行的操作,從而采取積極、有效的應(yīng)對措施。
西陵網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,西陵網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為西陵上千多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的西陵做網(wǎng)站的公司定做!
審計開關(guān)
在DM系統(tǒng)中,專門為審計設(shè)置了開關(guān),要使用審計功能首先要打開審計開關(guān)。審計開關(guān)由DM的INI參數(shù)ENABLE_AUDIT控制,有三種取值:
0:關(guān)閉審計
1:打開普通審計
2:打開普通審計和實時審計
在普通版本中,ENABLE_AUDIT的缺省值為0;在安全版本中,ENABLE_AUDIT的缺省值為2。
審計開關(guān)必須由具有DBA權(quán)限的管理員進(jìn)行設(shè)置。
系統(tǒng)管理員可通過查詢V$PARAMETER動態(tài)視圖查詢ENABLE_AUDIT的當(dāng)前值。
SQL> select * from v$parameter where name='ENABLE_AUDIT'; LINEID ID NAME TYPE VALUE SYS_VALUE FILE_VALUE DESCRIPTION ---------- ----------- ------------ ---- ----- --------- ---------- --------------------------------------------------------------------------------------- 1 385 ENABLE_AUDIT SYS 0 0 0 Flag For Allowing Audit, 0: no audit 1: normal audit 2:normal audit and realtime audit used time: 8.170(ms). Execute id is 24948. SQL> sp_set_para_value(1,'ENABLE_AUDIT',2); DMSQL executed successfully used time: 80.901(ms). Execute id is 24968. SQL> select * from v$parameter where name='ENABLE_AUDIT'; LINEID ID NAME TYPE VALUE SYS_VALUE FILE_VALUE DESCRIPTION ---------- ----------- ------------ ---- ----- --------- ---------- --------------------------------------------------------------------------------------- 1 385 ENABLE_AUDIT SYS 2 2 2 Flag For Allowing Audit, 0: no audit 1: normal audit 2:normal audit and realtime audit used time: 6.829(ms). Execute id is 24969. SQL> select * from v$dm_ini where para_name='ENABLE_AUDIT'; LINEID PARA_NAME PARA_VALUE MIN_VALUE MAX_VALUE MPP_CHK SESS_VALUE FILE_VALUE DESCRIPTION PARA_TYPE ---------- ------------ ---------- --------- --------- ------- ---------- ---------- --------------------------------------------------------------------------------------- --------- 1 ENABLE_AUDIT 2 0 2 N 2 2 Flag For Allowing Audit, 0: no audit 1: normal audit 2:normal audit and realtime audit SYS used time: 7.090(ms). Execute id is 24970. SQL>
也可以通過使用客戶端工具Console或調(diào)用系統(tǒng)過程SP_SET_PARA_VALUE重新設(shè)置ENABLE_AUDIT的值,ENABLE_AUDIT為動態(tài)INI參數(shù)。
審計的設(shè)置與取消
數(shù)據(jù)庫審計員指定被審計對象的活動稱為審計設(shè)置,只有具有AUDIT DATABASE權(quán)限的審計員才能進(jìn)行審計設(shè)置。DM提供審計設(shè)置系統(tǒng)過程來實現(xiàn)這種設(shè)置,被審計的對象可以是某類操作,也可以是某些用戶在數(shù)據(jù)庫中的全部行蹤。只有預(yù)先設(shè)置的操作和用戶才能被DM系統(tǒng)自動進(jìn)行審計。
DM允許在三個級別上進(jìn)行審計設(shè)置
系統(tǒng)級:系統(tǒng)的啟動與關(guān)閉,此級別的審計無法也無需由用戶進(jìn)行設(shè)置,只要審計開關(guān)打開就會自動生成對應(yīng)審計記錄
語句級:導(dǎo)致影響特定類型數(shù)據(jù)庫對象的特殊SQL或語句組的審計。如AUDIT TABLE 將審計CREATE TABLE、ALTER TABLE和DROP TABLE等語句
對象級:審計作用在特殊對象上的語句。如test表上的INSERT語句
審計設(shè)置存放于DM字典表SYSAUDIT中,進(jìn)行一次審計設(shè)置就在SYSAUDIT中增加一條對應(yīng)的記錄,取消審計則刪除SYSAUDIT中相應(yīng)的記錄。
對象級審計
對象級審計發(fā)生在具體的對象上,需要指定模式名以及對象名
設(shè)置對象級審計的系統(tǒng)過程如下:
VOID SP_AUDIT_OBJECT ( TYPE VARCHAR(30), USERNAME VARCHAR (128), SCHNAME VARCHAR (128), TVNAME VARCHAR (128), WHENEVER VARCHAR (20) ) VOID SP_AUDIT_OBJECT ( TYPE VARCHAR(30), USERNAME VARCHAR (128), SCHNAME VARCHAR (128), TVNAME VARCHAR (128), COLNAME VARCHAR (128), WHENEVER VARCHAR (20) )
參數(shù)說明:
TYPE 對象級審計選項,即上表中的第一列
USERNAME 用戶名
SCHNAME 模式名,為空時置‘null’
TVNAME 表、視圖、存儲過程名不能為空
COLNAME 列名
WHENEVER 審計時機(jī),可選的取值為:
ALL:所有的
SUCCESSFUL:操作成功時
FAIL:操作失敗時
例1,對SYSDBA對表PERSON.ADDRESS進(jìn)行的添加和修改的成功操作進(jìn)行審計。
SQL> sp_audit_object('INSERT','SYSDBA','PERSON','ADDRESS','SUCCESSFUL'); DMSQL executed successfully used time: 18.455(ms). Execute id is 25077. SQL> sp_audit_object('UPDATE','SYSDBA','PERSON','ADDRESS','SUCCESSFUL'); DMSQL executed successfully used time: 16.263(ms). Execute id is 25080.
例2,對SYSDBA對表PERSON.ADDRESS的ADDRESS1列進(jìn)行的修改成功的操作進(jìn)行審計。
SQL> sp_audit_object('UPDATE','SYSDBA','PERSON','ADDRESS','ADDRESS1','SUCCESSFUL'); DMSQL executed successfully used time: 15.465(ms). Execute id is 25096. SQL> select * from v$auditrecords; LINEID USERID USERNAME ROLEID ROLENAME IP SCHID SCHNAME OBJID OBJNAME OPERATION SUCC_FLAG SQL_TEXT ---------- ----------- -------- ----------- -------- ---------------- ----------- ------- ----------- ------- ------------ --------- ----------------------------------------------------------------------------------------- DESCRIBTION OPTIME MAC ----------- --------------------------- ----------------- 1 50331649 SYSDBA 67108864 DBA ::ffff:127.0.0.1 -1 -1 DROP TABLE Y drop table cs purge; 2020-05-27 19:28:06.000000 00:00:00:00:00:00 2 50331649 SYSDBA 67108864 DBA ::ffff:127.0.0.1 -1 -1 CREATE TABLE Y create table cs(id int,name varchar(20)); 2020-05-27 19:28:19.000000 00:00:00:00:00:00 3 50331649 SYSDBA 67108864 DBA ::ffff:127.0.0.1 -1 -1 CREATE USER Y create user cs2 identified by ******; 2020-05-27 19:32:18.000000 00:00:00:00:00:00 LINEID USERID USERNAME ROLEID ROLENAME IP SCHID SCHNAME OBJID OBJNAME OPERATION SUCC_FLAG SQL_TEXT ---------- ----------- -------- ----------- -------- ---------------- ----------- ------- ----------- ------- ------------ --------- ----------------------------------------------------------------------------------------- DESCRIBTION OPTIME MAC ----------- --------------------------- ----------------- 4 50331750 JY 67108864 DBA ::ffff:127.0.0.1 150995951 JY 1454 T1 UPDATE Y update t1 set c2='WY' where c1=2; 2020-05-27 19:36:39.000000 00:00:00:00:00:00 5 50331750 JY 67108864 DBA ::ffff:127.0.0.1 150995951 JY 1454 T1 DELETE Y delete from t1; 2020-05-27 19:37:08.000000 00:00:00:00:00:00 6 50331649 SYSDBA 67108864 DBA ::ffff:127.0.0.1 150995945 PERSON 1254 ADDRESS INSERT Y insert into person.address values('常德武陵區(qū)武陵大道938號',null,'德武陵區(qū)','415700',10); 2020-05-27 19:58:29.000000 00:00:00:00:00:00
取消對象級審計的系統(tǒng)過程如下:
VOID SP_NOAUDIT_OBJECT ( TYPE VARCHAR(30), USERNAME VARCHAR (128), SCHNAME VARCHAR (128), TVNAME VARCHAR (128), WHENEVER VARCHAR (20) ) VOID SP_NOAUDIT_OBJECT ( TYPE VARCHAR(30), USERNAME VARCHAR (128), SCHNAME VARCHAR (128), TVNAME VARCHAR (128), COLNAME VARCHAR (128), WHENEVER VARCHAR (20) )
參數(shù)說明:
TYPE 對象級審計選項,即上表中的第一列
USERNAME 用戶名
SCHNAME 模式名,為空時置‘null’
TVNAME 表、視圖、存儲過程名不能為空
COLNAME 列名
WHENEVER 審計時機(jī),可選的取值為:
ALL:所有的
SUCCESSFUL:操作成功時
FAIL:操作失敗時
使用說明:
取消審計語句和設(shè)置審計語句進(jìn)行匹配,只有完全匹配的才可以取消審計,否則無法取消審計。
例1,取消對SYSDBA對表PERSON.ADDRESS進(jìn)行的添加和修改的成功操作的審計。
SQL> sp_noaudit_object('INSERT','SYSDBA','PERSON','ADDRESS','SUCCESSFUL'); DMSQL executed successfully used time: 14.435(ms). Execute id is 25099. SQL> sp_noaudit_object('UPDATE','SYSDBA','PERSON','ADDRESS','SUCCESSFUL'); DMSQL executed successfully used time: 15.512(ms). Execute id is 25100.
例2,取消對SYSDBA對表PERSON.ADDRESS的ADDRESS1列進(jìn)行的修改成功操作的審計。
SQL> sp_noaudit_object('UPDATE','SYSDBA','PERSON','ADDRESS','ADDRESS1','SUCCESSFUL'); DMSQL executed successfully used time: 25.550(ms). Execute id is 25102.