DM7審計之語句級審計
審計機制是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中相應的記錄。
語句級審計
語句級審計的動作是全域性的,不對應具體的資料庫物件
ALL: 所有的語句級審計選項 所有可審計操作
USER:CREATE USER,ALTER USER,DROP USER 建立/修改/刪除使用者操作
ROLE: CREATE ROLE,DROP ROLE 建立/刪除角色操作
TABLESPACE:CREATE TABLESPACE,ALTER TABLESPACE,DROP TABLESPACE, 建立/修改/刪除表空間操作
SCHEMA:CREATE SCHEMA,DROP SCHEMA,SET SCHEMA 建立/刪除/設定當前模式操作
TABLE:CREATE TABLE,ALTER TABLE,DROP TABLE,TRUNCATE TABLE 建立/修改/刪除/清空基表操作
VIEW:CREATE VIEW, ALTER VIEW,DROP VIEW 建立/修改/刪除檢視操作
INDEX:CREATE INDEX,DROP INDEX 建立/刪除索引操作
PROCEDURE:CREATE PROCEDURE,ALTER PROCEDURE,DROP PROCEDURE 建立/修改/刪除儲存模組操作
TRIGGER:CREATE TRIGGER,ALTER TRIGGER,DROP TRIGGER 建立/修改/刪除觸發器操作
SEQUENCE:CREATE SEQUENCE,ALTER SEQUENCE,DROP SEQUENCE 建立/修改/刪除序列操作
CONTEXT:CREATE CONTEXT INDEX,ALTER CONTEXT INDEX,DROP CONTEXT INDEX 建立/修改/刪除全文索引操作
SYNONYM:CREATE SYNONYM,DROP SYNONYM 建立/刪除同義詞
GRANT:GRANT 授予許可權操作
設定語句級審計的系統過程如下:
VOID SP_AUDIT_STMT( TYPE VARCHAR(30), USERNAME VARCHAR (128), WHENEVER VARCHAR (20) )
引數說明:
TYPE 語句級審計選項,即上表中的第一列
USERNAME 使用者名稱,NULL表示不限制
WHENEVER 審計時機,可選的取值為:
ALL:所有的
SUCCESSFUL:操作成功時
FAIL:操作失敗時
例1,審計表的建立、修改和刪除。
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建立使用者成功進行審計。
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進行的表的修改和刪除進行審計,不管失敗和成功。
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.
取消語句級審計的系統過程如下:
VOID SP_NOAUDIT_STMT( TYPE VARCHAR(30), USERNAME VARCHAR (128), WHENEVER VARCHAR (20) )
引數說明:
TYPE 語句級審計選項,即上表中的第一列
USERNAME 使用者名稱,NULL表示不限制
WHENEVER 審計時機,可選的取值為:
ALL:所有的
SUCCESSFUL:操作成功時
FAIL:操作失敗時
使用說明:
取消審計語句和設定審計語句進行匹配,只有完全匹配的才可以取消審計,否則無法取消審計。
例1,取消對錶的建立、修改和刪除的審計。
SQL> sp_noaudit_stmt('table','null','all'); DMSQL executed successfully used time: 64.146(ms). Execute id is 25059.
例2,取消對SYSDBA建立使用者成功進行審計。
SQL> sp_noaudit_stmt('user','sysdba','successful'); DMSQL executed successfully used time: 11.380(ms). Execute id is 25060.
例3,取消對使用者jy進行的表的修改和刪除的審計。
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.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-2696639/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DM7審計之語句序列審計
- DM7審計之物件審計物件
- Java 審計之SSRF篇Java
- Java審計之XSS篇Java
- Java 審計之XXE篇Java
- oracle fga審計(欄位級)Oracle
- OceanBase 安全審計之透明加密加密
- PHP審計之POP鏈挖掘PHP
- Java程式碼審計篇 - ofcms系統審計思路講解 - 篇4 - XXE漏洞審計Java
- Java審計之命令執行篇Java
- Java審計之檔案操作漏洞Java
- AUDIT審計(2)
- Oracle審計(轉)Oracle
- Kubernetes 審計(Auditing)
- IT審計隨想
- Oracle:審計清理Oracle
- MySQL審計auditMySql
- Java程式碼審計篇 - ofcms系統審計思路講解 - 篇3 - 檔案上傳漏洞審計Java
- Java程式碼審計篇 - ofcms系統審計思路講解 - 篇2 - SQL隱碼攻擊漏洞審計JavaSQL
- ORACLE AUDIT審計(1)Oracle
- vertica審計日誌
- buu 程式碼審計
- JFinalcms程式碼審計
- CSCMS程式碼審計
- Spring Data Commons審計Spring
- SQL Server 審計(Audit)SQLServer
- Java審計之SQL隱碼攻擊篇JavaSQL
- PHP審計之PHP反序列化漏洞PHP
- PHP函式漏洞審計之addslashes函式-PHP函式
- 什麼是程式碼審計?程式碼審計有什麼好處?
- 基於Java關鍵詞審計技巧?網路安全原始碼審計Java原始碼
- [20180525]丟失審計.txt
- 程式碼審計————目錄
- 運維審計系統運維
- 日誌審計系統
- Graudit程式碼安全審計
- oracle審計-細粒度(轉)Oracle
- mysql審計日誌-ProxySQLMySql