DM8审计

审计机制是 DM 数据库管理系统安全管理的重要组成部分之一。 DM 数据库除了提供数据安全保护措施外,还提供对日常事件的事后审计监督。 DM 具有一个灵活的审计子系统,可以通过它来记录系统级事件、个别用户的行为以及对数据库对象的访问。通过考察、跟踪审计信息,数据库审计员可以查看用户访问的形式以及曾试图对该系统进行的操作,从而采取积极、有效的应对措施。

一、DM8审计级别

DM 允许在三个级别上进行审计设置,分别是系统级、语句级和对象级。
系统级:系统的启动与关闭,此级别的审计无法也无需由用户进行设置,只要审计开关打开就会自动生成对应审计记录;
语句级:导致影响特定类型数据库对象的特殊 SQL 或语句组的审计。 如 AUDIT TABLE 将审计 CREATE TABLE、 ALTER TABLE 和 DROP TABLE 等语句;
对象级:审计作用在特殊对象上的语句。 如 test 表上的 INSERT 语句

二、DM8审计功能开关

在 DM 系统中,专门为审计设置了开关,要使用审计功能首先要打开审计开关。审计开关由过程 VOID SP_SET_ENABLE_AUDIT(param int) ;控制, 过程执行完后会立即生效, param 有三种取值:
 0:关闭审计
 1:打开普通审计
 2:打开普通审计和实时审计
缺省值为 0。
打开普通审计开关。
SP_SET_ENABLE_AUDIT (1);
审计开关必须由具有数据库审计员权限的管理员进行设置。
其它用户执行打开审计系统包报错,如下:

[dmdba@dm8-study ~]$ rlwrap disql sysdba/dameng123

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间: 289.063(毫秒)
disql V8
SQL> SP_SET_ENABLE_AUDIT (1);
SP_SET_ENABLE_AUDIT (1);
[-5598]:没有执行权限.
已用时间: 714.429(毫秒). 执行号:0.

审计用户执行打开审计功能能够正常执行,如下示:

[dmdba@dm8-study ~]$ rlwrap disql sysauditor/dameng123

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间: 3.699(毫秒)
disql V8
SQL> SP_SET_ENABLE_AUDIT (1);
DMSQL 过程已成功完成
已用时间: 214.831(毫秒). 执行号:510.

数据库审计员可通过查询 V$DM_INI 动态视图查询 ENABLE_AUDIT 的当前值。

SQL> SELECT * FROM V$DM_INI WHERE PARA_NAME='ENABLE_AUDIT';

行号     PARA_NAME    PARA_VALUE MIN_VALUE MAX_VALUE MPP_CHK SESS_VALUE
---------- ------------ ---------- --------- --------- ------- ----------
           FILE_VALUE
           ----------
           DESCRIPTION                                                      
           -----------------------------------------------------------------
           PARA_TYPE
           ---------
1          ENABLE_AUDIT 1          0         2         N       1
           0
           Flag For Allowing Audit, 0: no audit 1: normal audit  2:normal audit and realtime audit
           READ ONLY


已用时间: 6.289(毫秒). 执行号:512.

三、语句级审计设置

打开语句级别的审计:SP_AUDIT_STMT(TYPE,USERNAME,WHENVER)
TYPE:审计选项
USERNAME:用户,null表示不限制
WHENEVER:审计时机 ALL :所有的、 SUECCFUL:操作成功时、FAIL:操作失败时。
审计表的创建、修改和删除。

SQL> SP_AUDIT_STMT('TABLE', 'NULL', 'ALL');
DMSQL 过程已成功完成
已用时间: 176.986(毫秒). 执行号:516.

这里需要使用SYSAUDITOR这个用户去操作上面命令才能执行。
查看语句级别审计是否执行成功:

SQL> SELECT * FROM SYSAUDITOR."V$AUDITRECORDS" ;

行号     USERID      USERNAME   ROLEID      ROLENAME       IP 
---------- ----------- ---------- ----------- -------------- ---
           SCHID       SCHNAME OBJID       OBJNAME OPERATION
           ----------- ------- ----------- ------- ---------
           SUCC_FLAG SQL_TEXT                              
           --------- --------------------------------------
           DESCRIBTION                           
           --------------------------------------
           OPTIME                                                                                              
           ----------------------------------------------------------------------------------------------------
           MAC               SEQNO      
           ----------------- -----------
1          50331649    SYSDBA     67108864    DBA            ::1
           -1                  -1                  EXECUTE
           N         SP_SET_ENABLE_AUDIT (1);
           没有执行权限
           2020-12-30 23:02:17.000000
                             0


行号     USERID      USERNAME   ROLEID      ROLENAME       IP 
---------- ----------- ---------- ----------- -------------- ---
           SCHID       SCHNAME OBJID       OBJNAME OPERATION
           ----------- ------- ----------- ------- ---------
           SUCC_FLAG SQL_TEXT                              
           --------- --------------------------------------
           DESCRIBTION                           
           --------------------------------------
           OPTIME                                                                                              
           ----------------------------------------------------------------------------------------------------
           MAC               SEQNO      
           ----------------- -----------
2          50331650    SYSAUDITOR 67108867    DB_AUDIT_ADMIN ::1
           -1                  -1                  EXECUTE
           Y         SP_SET_ENABLE_AUDIT (1);
           SP_SET_ENABLE_AUDIT (1);
           2020-12-30 23:05:28.000000
                             0


行号     USERID      USERNAME   ROLEID      ROLENAME       IP 
---------- ----------- ---------- ----------- -------------- ---
           SCHID       SCHNAME OBJID       OBJNAME OPERATION
           ----------- ------- ----------- ------- ---------
           SUCC_FLAG SQL_TEXT                              
           --------- --------------------------------------
           DESCRIBTION                           
           --------------------------------------
           OPTIME                                                                                              
           ----------------------------------------------------------------------------------------------------
           MAC               SEQNO      
           ----------------- -----------
3          50331650    SYSAUDITOR 67108867    DB_AUDIT_ADMIN ::1
           -1                  -1                  EXECUTE
           Y         SP_AUDIT_STMT('TABLE', 'NULL', 'ALL');
           SP_AUDIT_STMT('TABLE', 'NULL', 'ALL');
           2020-12-30 23:33:00.000000
           00:0C:29:AD:EF:80 0


已用时间: 51.209(毫秒). 执行号:517.

取消语句级别审计:
SQL> SP_NOAUDIT_STMT('TABLE','NULL','ALL');
DMSQL 过程已成功完成
已用时间: 109.169(毫秒). 执行号:518.

查询取消语句级别审计的执行结果:
行号     USERID      USERNAME   ROLEID      ROLENAME       IP 
---------- ----------- ---------- ----------- -------------- ---
           SCHID       SCHNAME OBJID       OBJNAME OPERATION
           ----------- ------- ----------- ------- ---------
           SUCC_FLAG SQL_TEXT                              
           --------- --------------------------------------
           DESCRIBTION                           
           --------------------------------------
           OPTIME                                                                                              
           ----------------------------------------------------------------------------------------------------
           MAC               SEQNO      
           ----------------- -----------
4          50331650    SYSAUDITOR 67108867    DB_AUDIT_ADMIN ::1
           -1                  -1                  EXECUTE
           Y         SP_NOAUDIT_STMT('TABLE','NULL','ALL');
           SP_NOAUDIT_STMT('TABLE','NULL','ALL');
           2020-12-30 23:37:19.000000
           00:0C:29:AD:EF:80 0


已用时间: 1.133(毫秒). 执行号:519.

四、对象级审计

对象级审计:是对数据对象的操作做审计,主要有INSERT、UPDATE、DELETE、SELECT、EXECUTE、MERGE
INTO、EXECUTE TRIGGER。
打开对象级别的审计语法:SP_AUDIT_OBJECT(TYPE,USERNAME,SCHNAME,TVNAME,COLNAME,WHENVER)
TYPE 对象级审计选项,即上表中的第一列
USERNAME 用户名
SCHNAME 模式名,为空时置‘null’
TVNAME表、视图、存储过程名不能为空
COLNAME 列名
WHENEVER:审计时机
ALL :所有的
SUECCFUL:操作成功时
FAIL:操作失败时。

设置语句级别的审计
审计SYSDBA用户查看DMHR.EMPLOYEE这张表:

SQL>SP_AUDIT_OBJECT('SELECT','SYSDBA','DMHR','EMPLOYEE','ALL');
DMSQL 过程已成功完成
已用时间: 58.429(毫秒). 执行号:2512.

进行测试:
用sysdba用户对EMPLOYEE表进行查询操作

SELECT * FROM DMHR.EMPLOYEE;

查看审计是否执行成功:

SELECT * FROM SYSAUDITOR."V$AUDITRECORDS" ;

审计结果如下:
在这里插入图片描述
取消对象级别审计:SP_NOAUDIT_OBJECT(‘SELECT’,‘SYSDBA’,‘DMHR’,‘EMPLOYEE’,‘ALL’)
在这里插入图片描述
再次对EMPLOYEE表进行查询

SELECT * FROM DMHR.EMPLOYEE;

查看审计是否执行成功:

SELECT * FROM SYSAUDITOR."V$AUDITRECORDS" ;

审计结果如下示,取消审计后,不再记录操作动作:
在这里插入图片描述
五、审计设置补充说明
 只要审计功能被启用,系统级的审计记录就会产生;
 在进行数据库审计时,审计员之间没有区别,可以审计所有数据库对象,也可取消
其他审计员的审计设置;
 语句级审计不针对特定的对象,只针对用户;
 对象级审计针对指定的用户与指定的对象进行审计;
 在设置审计时,审计选项不区分包含关系,都可以设置;
 在设置审计时,审计时机不区分包含关系,都可以进行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值