共计 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 的支持。