暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

达梦数据库开启审计

Asian 2024-07-13
349

sysauditor用户操作

打开普通审计开关

SP_SET_ENABLE_AUDIT (1);

查询审计开关的当前值

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

审计的设置与取消

审计分为系统级,语句级,对象级

设置语句级审计的系统过程如下:

VOID

SP_AUDIT_STMT(

TYPE VARCHAR(30),

USERNAME VARCHAR (128),

WHENEVER VARCHAR (20)

)

参数说明:

TYPE:语句级审计选项,即上表中的第一列

USERNAME :用户名,NULL 表示不限制

WHENEVER :审计时机,可选的取值为:

 ALL:所有的

 SUCCESSFUL:操作成功时

 FAIL:操作失败时

例 1 审计表的创建、修改、删除和清空。

SP_AUDIT_STMT('TABLE', 'NULL', 'ALL');

例 2 对 SYSDBA 创建、修改、删除用户成功进行审计。

SP_AUDIT_STMT('USER', 'SYSDBA', 'SUCCESSFUL');

例 3 对用户 USER2 进行的表的修改和删除进行审计,不管失败和成功。

SP_AUDIT_STMT('UPDATE TABLE', 'USER2', 'ALL');

SP_AUDIT_STMT('DELETE TABLE', 'USER2', 'ALL');

取消语句级审计的系统过程如下:

VOID

SP_NOAUDIT_STMT(

TYPE VARCHAR(30),

USERNAME VARCHAR (128),

WHENEVER VARCHAR (20)

)

参数说明:

TYPE:语句级审计选项,即上表中的第一列

USERNAME :用户名,NULL 表示不限制

WHENEVER :审计时机,可选的取值为:

 ALL:所有的

 SUCCESSFUL:操作成功时

 FAIL:操作失败时

例 1 取消对表的创建、修改、删除和清空的审计。

SP_NOAUDIT_STMT('TABLE', 'NULL', 'ALL');

例 2 取消对 SYSDBA 创建、修改、删除用户成功进行审计。

SP_NOAUDIT_STMT('USER', 'SYSDBA', 'SUCCESSFUL');

例 3 取消对用户 USER2 进行的表的修改和删除的审计。

SP_NOAUDIT_STMT('UPDATE TABLE', 'USER2', 'ALL');

SP_NOAUDIT_STMT('DELETE TABLE', 'USER2', 'ALL');

对象级审计

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

SP_AUDIT_OBJECT('INSERT', 'SYSDBA', 'PERSON', 'ADDRESS', 'SUCCESSFUL');

SP_AUDIT_OBJECT('UPDATE', 'SYSDBA', 'PERSON', 'ADDRESS', 'SUCCESSFUL');

例 2 对 SYSDBA 对表 PERSON.ADDRESS 的 ADDRESS1 列进行的修改成功的操作进行审计。

SP_AUDIT_OBJECT('UPDATE','SYSDBA','PERSON','ADDRESS','ADDRESS1','SUCCESSFUL');

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

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

SP_NOAUDIT_OBJECT('INSERT', 'SYSDBA', 'PERSON', 'ADDRESS', 'SUCCESSFUL');

SP_NOAUDIT_OBJECT('UPDATE', 'SYSDBA', 'PERSON', 'ADDRESS', 'SUCCESSFUL');

例 2 取消对 SYSDBA 对表 PERSON.ADDRESS 的 ADDRESS1 列进行的修改成功操作的审计。

SP_NOAUDIT_OBJECT('UPDATE','SYSDBA','PERSON','ADDRESS','ADDRESS1','SUCCESSFUL');

语句序列审计(语句级审计和对象级审计的补充)

建立语句序列审计规则的过程包括下面三个系统过程。

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 语句

例 建立一个语句序列审计规则 AUDIT_SQL1

SP_AUDIT_SQLSEQ_START('AUDIT_SQL1');

SP_AUDIT_SQLSEQ_ADD('AUDIT_SQL1', 'SELECT NAME FROM TEST1;');

SP_AUDIT_SQLSEQ_ADD('AUDIT_SQL1', 'SELECT ID FROM TEST2;');

SP_AUDIT_SQLSEQ_ADD('AUDIT_SQL1', 'SELECT * FROM TEST3;');

SP_AUDIT_SQLSEQ_END('AUDIT_SQL1');

可使用下面的系统过程删除指定的语句序列审计规则

VOID

SP_AUDIT_SQLSEQ_DEL(

NAME VARCHAR (128)

参数说明:

NAME:语句序列审计规则名

例 删除语句序列审计规则 AUDIT_SQL1。

SP_AUDIT_SQLSEQ_DEL('AUDIT_SQL1');

系统过程删除指定时间点之前的审计文件

VOID

SP_DROP_AUDIT_FILE(

TIME_STR VARCHAR(128),

TYPE INT

);

参数说明:

TIME_STR:指定的时间字符串

TYPE:审计文件类型,0 表示删除普通审计文件,1 表示删除实时审计文件

例 指定删除 2015-12-6 16:30:00 以前的普通审计文件。

SP_DROP_AUDIT_FILE('2015-12-6 16:30:00',0);

系统过程设置审计文件加密

VOID

SP_AUDIT_SET_ENC(

NAME VARCHAR(128),

KEY VARCHAR(128)

)

参数说明:

NAME:加密算法名,可使用 DM 支持的加密算法,见表 7.1;也支持用户自定义加密

算法,见第 8 章加密引擎介绍

KEY:加密密钥

切换审计文件

VOID

SP_SWITCH_AUDIT_FILE(

AUDIT_SWITCH INT

)

AUDIT_SWITCH:切换开关值,取值 1 或 2。1 表示切换普通审计文件,2 表示同时切

换普通和实时审计文件。对于 DMDSC 环境仅切换当前节点审计文件

例 切换普通审计文件。

SP_SWITCH_AUDIT_FILE(1);

审计信息查阅

除语句序列审计设置外的审计设置信息都记录在数据字典表 SYSAUDITOR.SYSAUDIT 中

语句序列审计设置信息记录在数据字典表 SYSAUDITOR.SYSAUDITSQLSEQ 中,结构如表所示

审计用户可以通过动态视图 SYSAUDITOR.V$AUDITRECORDS查询审计文件路径下的审计文件的审计记录

DM 还提供了以下系统函数供查看审计设置中涉及的审计类型 TYPE、审计级别 LEVEL、

以及生成时机 WHENEVER 常量对应的具体信息,作为上述动态视图的补充。

SF_GET_AUDIT_TYPENAME

VARCHAR

SF_GET_AUDIT_TYPENAME(

TYPE INT

);

参数说明:

TYPE:审计类型,对应 SYSAUDIT 中 TYPE 字段值

返回值:

参数 TYPE 值的意义描述

例 查看 SYSAUDIT 中 TYPE 值 50 的意义描述。

SELECT SF_GET_AUDIT_TYPENAME(50);

SELECT * FROM SYSAUDITOR.SYSAUDIT;

行号 LEVEL UID TVPID COLID TYPE WHENEVER

---------- ----------- ----------- ----------- ----------- -----------

1 2 50331649 1196 -1 50 1

2 2 50331649 1196 -1 53 1

SF_GET_AUDIT_LEVELNAME

VARCHAR

SF_GET_AUDIT_LEVELNAME(

LEVEL INT

);

参数说明:

LEVEL:审计级别,对应 SYSAUDIT 中 LEVEL 字段值

返回值:

参数 LEVEL 值的意义描述

例 查看 SYSAUDIT 中 LEVEL 值为 2 的意义描述。

SELECT SF_GET_AUDIT_LEVELNAME(2);

SF_GET_AUDIT_WHENEVERNAME

VARCHAR

SF_GET_AUDIT_WHENEVERNAME(

WHENEVER INT

);

参数说明:

WHENEVER :审计记录生成时机,对应 SYSAUDIT 中 WHENEVER 字段值

返回值:

参数 WHENEVER 值的意义描述

例 查看 SYSAUDIT 中 WHENEVER 值为 1 的意义描述。

SELECT SF_GET_AUDIT_WHENEVERNAME(1);

审计实时侵害检测

当执行 SP_SET_ENABLE_AUDIT (2);时,开启审计实时侵害检测功能。

创建与删除实时侵害检测规则

例 1 创建一个审计实时侵害检测规则 DANGEROUS_SESSION,该规则检测每个星期一8:00 至 9:00 的所有非本地 SYSDBA 的登录动作。

SP_CREATE_AUDIT_RULE ('DANGEROUS_SESSION','CONNECT', 'SYSDBA', 'NULL', 'NULL', 'ALL', '"127.0.0.1"','MON "8:00:00" TO MON "9:00:00"',0, 0);

例 2 创建一个审计实时侵害检测规则 PWD_CRACK,该规则检测可能的口令暴力破解行为。

SP_CREATE_AUDIT_RULE ('PWD_CRACK','CONNECT', 'NULL', 'NULL', 'NULL', 'FAIL', 'NULL','NULL',1, 50);

当不再需要某个实时侵害检测规则时,可使用下面的系统过程进行删除。

VOID

SP_DROP_AUDIT_RULE(

RULENAME VARCHAR(128)

);

参数说明:

RULENAME:待删除的审计实时侵害检测规则名

例 删除已创建的实时侵害检测规则 DANGEROUS_SESSION。

SP_DROP_AUDIT_RULE ('DANGEROUS_SESSION');

dmaudtool 工具分析审计文件

dmaudtool USERID=<userid> AFIL_PATH=<afil_path> OUT_PATH=<out_path> {PARAMETER=<value>}

dmaudtool USERID=sysauditor/SYSAUDITOR@192.168.6.140:32141 AFIL_PATH=/data/dmdata/audit/AUDIT_GRP1_RT_01_EE658D7DEE658D7D203751947841ABD7_2024-7-1-10-9-1.log OUT_PATH=/data/dmdata/auditlog/ R_SEP=AAAA

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论