共計 6023 個字符,預計需要花費 16 分鐘才能閱讀完成。
DM7 審計中的語句序列審計是怎樣的,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面丸趣 TV 小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
審計機制是 DM 數據庫管理系統安全管理的重要組成部分之一。DM 數據庫除了提供數據安全保護措施外,還提供對日常事件的事后審計監督。DM 具有一個靈活的審計子系統,可以通過它來記錄系統級事件、個別用戶的行為以及對數據庫對象的訪問。通過考察、跟蹤審計信息,數據庫審計員可以查看用戶訪問的形式以及曾試圖對該系統進行的操作,從而采取積極、有效的應對措施。
審計開關
在 DM 系統中,專門為審計設置了開關,要使用審計功能首先要打開審計開關。審計開關由 DM 的 INI 參數 ENABLE_AUDIT 控制,有三種取值:
0:關閉審計
1:打開普通審計
2:打開普通審計和實時審計
在普通版本中,ENABLE_AUDIT 的缺省值為 0;在安全版本中,ENABLE_AUDIT 的缺省值為 2。
審計開關必須由具有 DBA 權限的管理員進行設置。
系統管理員可通過查詢 V$PARAMETER 動態視圖查詢 ENABLE_AUDIT 的當前值。
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 或調用系統過程 SP_SET_PARA_VALUE 重新設置 ENABLE_AUDIT 的值,ENABLE_AUDIT 為動態 INI 參數。
審計的設置與取消
數據庫審計員指定被審計對象的活動稱為審計設置,只有具有 AUDIT DATABASE 權限的審計員才能進行審計設置。DM 提供審計設置系統過程來實現這種設置,被審計的對象可以是某類操作,也可以是某些用戶在數據庫中的全部行蹤。只有預先設置的操作和用戶才能被 DM 系統自動進行審計。
DM 允許在三個級別上進行審計設置
系統級: 系統的啟動與關閉,此級別的審計無法也無需由用戶進行設置,只要審計開關打開就會自動生成對應審計記錄
語句級: 導致影響特定類型數據庫對象的特殊 SQL 或語句組的審計。如 AUDIT TABLE 將審計 CREATE TABLE、ALTER TABLE 和 DROP TABLE 等語句
對象級: 審計作用在特殊對象上的語句。如 test 表上的 INSERT 語句
審計設置存放于 DM 字典表 SYSAUDIT 中,進行一次審計設置就在 SYSAUDIT 中增加一條對應的記錄,取消審計則刪除 SYSAUDIT 中相應的記錄。
語句序列審計
DM 還提供了語句序列審計功能,作為語句級審計和對象級審計的補充。語句序列審計需要審計員預先建立一個審計規則,包含 N 條 SQL 語句(SQL1,SQL2……),如果某個會話依次執行了這些 SQL 語句,就會觸發審計。
建立語句序列審計規則的過程包括下面三個系統過程。
VOID
SP_AUDIT_SQLSEQ_START(
NAME VARCHAR (128)
)
VOID
SP_AUDIT_SQLSEQ_ADD(
NAME VARCHAR (128),
SQL VARCHAR (8188)
)
VOID
SP_AUDIT_SQLSEQ_END(
NAME VARCHAR (128)
)
參數說明:
NAME 語句序列審計規則名
SQL 需要審計的語句序列中的 SQL 語句
使用說明:
建立語句序列審計規則需要先調用 SP_AUDIT_SQLSEQ_START,之后調用若干次 SP_AUDIT_SQLSEQ_ADD,每次加入一條 SQL 語句,審計規則中的 SQL 語句順序根據加入 SQL 語句的順序確定,最后調用 SP_AUDIT_SQLSEQ_END 完成規則的建立。
例如,建立一個語句序列審計規則 audit_sql1。
SQL sp_audit_sqlseq_start(audit_sql1
DMSQL executed successfully
used time: 0.901(ms). Execute id is 25115.
SQL sp_audit_sqlseq_add(audit_sql1 , select c2 from t1;
DMSQL executed successfully
used time: 0.698(ms). Execute id is 25117.
SQL sp_audit_sqlseq_add(audit_sql1 , select c1 from t2;
DMSQL executed successfully
used time: 0.709(ms). Execute id is 25118.
SQL sp_audit_sqlseq_add(audit_sql1 , select * from t3;
DMSQL executed successfully
used time: 0.814(ms). Execute id is 25119.
SQL sp_audit_sqlseq_end(audit_sql1
DMSQL executed successfully
used time: 32.279(ms). Execute id is 25120.
在別一個會話執行語句
SQL select * from t1;
DMSQL executed successfully
used time: 0.814(ms). Execute id is 5119.
SQL select * from t2;
DMSQL executed successfully
used time: 0.814(ms). Execute id is 5120.
SQL select * from t3;
DMSQL executed successfully
used time: 0.814(ms). Execute id is 5121.
查詢審計記錄
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
6 50331649 SYSDBA 67108864 DBA ::ffff:127.0.0.1 150995945 PERSON 1254 ADDRESS INSERT Y insert into person.address values(常德武陵區武陵大道 938 號 ,null, 德武陵區 , 415700 ,10); 2020-05-27 19:58:29.000000 00:00:00:00:00:00
7 50331649 SYSDBA -1 ::ffff:127.0.0.1 -1 -1 SQL SEQ Y select name from t1; select id from t2; select * from t3; audit_sql1 2020-05-27 20:14:44.000000 00:00:00:00:00:00
7 rows got
used time: 1.013(ms). Execute id is 25133.
可使用下面的系統過程刪除指定的語句序列審計規則。
VOID
SP_AUDIT_SQLSEQ_DEL(
NAME VARCHAR (128)
)
參數說明:
NAME 語句序列審計規則名
例如,刪除語句序列審計規則 AUDIT_SQL1。
SQL sp_audit_sqlseq_del(audit_sql1
DMSQL executed successfully
used time: 26.854(ms). Execute id is 25137.
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注丸趣 TV 行業資訊頻道,感謝您對丸趣 TV 的支持。