共計 8096 個字符,預(yù)計需要花費 21 分鐘才能閱讀完成。
怎樣進(jìn)行 DM7 審計中的語句級審計的分析,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
審計機制是 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)對措施。
審計開關(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)的記錄。
語句級審計
語句級審計的動作是全局的,不對應(yīng)具體的數(shù)據(jù)庫對象
ALL: 所有的語句級審計選項 所有可審計操作
USER:CREATE USER,ALTER USER,DROP USER 創(chuàng)建/修改/刪除用戶操作
ROLE: CREATE ROLE,DROP ROLE 創(chuàng)建/刪除角色操作
TABLESPACE:CREATE TABLESPACE,ALTER TABLESPACE,DROP TABLESPACE, 創(chuàng)建/修改/刪除表空間操作
SCHEMA:CREATE SCHEMA,DROP SCHEMA,SET SCHEMA 創(chuàng)建/刪除/設(shè)置當(dāng)前模式操作
TABLE:CREATE TABLE,ALTER TABLE,DROP TABLE,TRUNCATE TABLE 創(chuàng)建/修改/刪除/清空基表操作
VIEW:CREATE VIEW, ALTER VIEW,DROP VIEW 創(chuàng)建/修改/刪除視圖操作
INDEX:CREATE INDEX,DROP INDEX 創(chuàng)建/刪除索引操作
PROCEDURE:CREATE PROCEDURE,ALTER PROCEDURE,DROP PROCEDURE 創(chuàng)建/修改/刪除存儲模塊操作
TRIGGER:CREATE TRIGGER,ALTER TRIGGER,DROP TRIGGER 創(chuàng)建/修改/刪除觸發(fā)器操作
SEQUENCE:CREATE SEQUENCE,ALTER SEQUENCE,DROP SEQUENCE 創(chuàng)建/修改 / 刪除序列操作
CONTEXT:CREATE CONTEXT INDEX,ALTER CONTEXT INDEX,DROP CONTEXT INDEX 創(chuàng)建/修改/刪除全文索引操作
SYNONYM:CREATE SYNONYM,DROP SYNONYM 創(chuàng)建/刪除同義詞
GRANT:GRANT 授予權(quán)限操作
設(shè)置語句級審計的系統(tǒng)過程如下:
VOID
SP_AUDIT_STMT(TYPE VARCHAR(30),
USERNAME VARCHAR (128),
WHENEVER VARCHAR (20)
)
參數(shù)說明:
TYPE 語句級審計選項,即上表中的第一列
USERNAME 用戶名,NULL 表示不限制
WHENEVER 審計時機,可選的取值為:
ALL:所有的
SUCCESSFUL:操作成功時
FAIL:操作失敗時
例 1,審計表的創(chuàng)建、修改和刪除。
SQL sp_audit_stmt( table , null , all
DMSQL executed successfully
used time: 10.709(ms). Execute id is 24979.
SQL select * from sysaudit;
LINEID LEVEL UID TVPID COLID TYPE WHENEVER
---------- ----------- ----------- ----------- ----------- ----------- -----------
1 1 -1 -1 -1 15 3
used time: 0.955(ms). Execute id is 24980.
SQL drop table cs purge;
executed successfully
used time: 138.141(ms). Execute id is 24994.
SQL create table cs(id int,name varchar(20));
executed successfully
used time: 31.431(ms). Execute id is 24996.
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
used time: 0.891(ms). Execute id is 24997.
例 2,對 SYSDBA 創(chuàng)建用戶成功進(jìn)行審計。
SQL sp_audit_stmt( user , sysdba , successful
DMSQL executed successfully
used time: 22.858(ms). Execute id is 25029.
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
used time: 1.650(ms). Execute id is 25032.
例 3,對用戶 jy 進(jìn)行的表的修改和刪除進(jìn)行審計,不管失敗和成功。
SQL sp_audit_stmt( update table , jy , all
DMSQL executed successfully
used time: 15.729(ms). Execute id is 25037.
SQL sp_audit_stmt( delete table , jy , all
DMSQL executed successfully
used time: 13.254(ms). Execute id is 25038.
SQL update t1 set c2= WY where c1=2;
affect rows 1
used time: 17.490(ms). Execute id is 25043.
SQL rollback;
executed successfully
used time: 1.001(ms). Execute id is 25045.
SQL delete from t1;
affect rows 2
used time: 27.257(ms). Execute id is 25046.
SQL rollback;
executed successfully
used time: 0.831(ms). Execute id is 25049.
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
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
used time: 1.242(ms). Execute id is 25047.
取消語句級審計的系統(tǒng)過程如下:
VOID
SP_NOAUDIT_STMT(TYPE VARCHAR(30),
USERNAME VARCHAR (128),
WHENEVER VARCHAR (20)
)
參數(shù)說明:
TYPE 語句級審計選項,即上表中的第一列
USERNAME 用戶名,NULL 表示不限制
WHENEVER 審計時機,可選的取值為:
ALL:所有的
SUCCESSFUL:操作成功時
FAIL:操作失敗時
使用說明:
取消審計語句和設(shè)置審計語句進(jìn)行匹配,只有完全匹配的才可以取消審計,否則無法取消審計。
例 1,取消對表的創(chuàng)建、修改和刪除的審計。
SQL sp_noaudit_stmt( table , null , all
DMSQL executed successfully
used time: 64.146(ms). Execute id is 25059.
例 2,取消對 SYSDBA 創(chuàng)建用戶成功進(jìn)行審計。
SQL sp_noaudit_stmt( user , sysdba , successful
DMSQL executed successfully
used time: 11.380(ms). Execute id is 25060.
例 3,取消對用戶 jy 進(jìn)行的表的修改和刪除的審計。
SQL sp_noaudit_stmt( update table , jy , all
DMSQL executed successfully
used time: 18.614(ms). Execute id is 25062.
SQL sp_noaudit_stmt( delete table , jy , all
DMSQL executed successfully
used time: 15.548(ms). Execute id is 25064.
看完上述內(nèi)容,你們掌握怎樣進(jìn)行 DM7 審計中的語句級審計的分析的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道,感謝各位的閱讀!