文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

DM7审计之对象审计

2024-04-02 19:55

关注

审计机制是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中相应的记录。

对象级审计
对象级审计发生在具体的对象上,需要指定模式名以及对象名

设置对象级审计的系统过程如下:

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)
)

参数说明:
TYPE 对象级审计选项,即上表中的第一列
USERNAME 用户名
SCHNAME 模式名,为空时置‘null’
TVNAME 表、视图、存储过程名不能为空
COLNAME 列名
WHENEVER 审计时机,可选的取值为:
ALL:所有的
SUCCESSFUL:操作成功时
FAIL:操作失败时

例1,对SYSDBA对表PERSON.ADDRESS进行的添加和修改的成功操作进行审计。

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列进行的修改成功的操作进行审计。

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('常德武陵区武陵大道938号',null,'德武陵区','415700',10);
                       2020-05-27 19:58:29.000000  00:00:00:00:00:00

取消对象级审计的系统过程如下:

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)
)

参数说明:
TYPE 对象级审计选项,即上表中的第一列
USERNAME 用户名
SCHNAME 模式名,为空时置‘null’
TVNAME 表、视图、存储过程名不能为空
COLNAME 列名
WHENEVER 审计时机,可选的取值为:
ALL:所有的
SUCCESSFUL:操作成功时
FAIL:操作失败时

使用说明:
取消审计语句和设置审计语句进行匹配,只有完全匹配的才可以取消审计,否则无法取消审计。
例1,取消对SYSDBA对表PERSON.ADDRESS进行的添加和修改的成功操作的审计。

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列进行的修改成功操作的审计。

SQL> sp_noaudit_object('UPDATE','SYSDBA','PERSON','ADDRESS','ADDRESS1','SUCCESSFUL');
DMSQL executed successfully
used time: 25.550(ms). Execute id is 25102.
阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯