达梦审计功能

达梦审计

前言

根据达梦官网文档整理

一、为什么要做数据库审计

  • 增强内部安全,可解答是哪个对象/人员更改了关键数据,并在何时进行的更改。

  • 安全等保、内审等合规条件的基本需求

  • 定责、追责等提供依据,起到威慑作用

二、谁去做审计

  • 安全审计员、也有可能是DBA、第三方监理部门

三、什么时候做审计

  • 等保要求规范

  • 保证数据安全,如一些敏感数据,核心业务数据外泄

  • 出于其它业务上考虑,如防止贪污、非法转移等

四、审计

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

五、dm.ini审计相关的参数

参数 说明
AUD_PATH DM 审计信息存储在审计文件中。审计文件默认存放在数据库的 SYSTEM_PATH 指定的路径,即数据库所在路径。用户也可在 dm.ini 文件中添加参数 AUD_PATH 来指定审计文件的存放路径
AUDIT_SPACE_LIMIT 审计文件总存储空间大小,该参数取值范围为 0~1024*1024M,0 表示不限制,缺省为 8192M。
AUDIT_MAX_FILE_SIZE 单个审计文件的大小,有效值范围为 1~4096M,缺省值为 100M。当单个审计文件超过指定大小时,系统会自动切换审计文件,自动创建新的审计文件,审计记录将写入新的审计文件中。
AUDIT_FILE_FULL_MODE 随着系统的运行,审计记录将会不断增加,审计文件需要更多的磁盘空间。在极限情况下,审计记录可能会因为磁盘空间不足而无法写入审计文件,最终导致系统无法正常运行。对这种情况的处理有两种策略。
1:删除最老的审计文件,直至有足够的空间创建新审计文件。若将所有可以删除的审计文件都删除后空间仍旧不够,则数据库会挂起不再处理任何请求,直至磁盘空间被清理出足够创建新审计文件的空间。
2:不再写审计记录

注意

AUDIT_FILE_FULL_MODE的**两种策略都会导致审计记录的缺失,因此,管理员应该及时对审计文件进行备份**。

六、审计类别

数据库审计员指定被审计对象的活动称为审计设置,只有具有 AUDIT DATABASE 权限的审计员才能进行审计设置。DM 提供审计设置系统过程来实现这种设置,被审计的对象可以是某类操作,也可以是某些用户在数据库中的全部行踪。只有预先设置的操作和用户才能被 DM 系统自动进行审计。

DM 允许在三个级别上进行审计设置。

审计级别 说明
系统级 系统的启动、关闭、部分系统事件以及一些系统过程和函数的调用,此级别的审计无法也无需由用户进行设置,只要审计开关打开就会自动生成对应审计记录
语句级 导致影响特定类型数据库对象的特殊 SQL 或语句组的审计。如 AUDIT TABLE 将审计 CREATE TABLE、ALTER TABLE 和 DROP TABLE 等语句
对象级 审计作用在特殊对象上的语句。如 test 表上的 INSERT 语句

语句级与对象级的区别?

  • 语句级一类的操作,不指明具体对象
  • 对象级针对某个具体对象的操作

审计设置存放于 DM 字典表 SYSAUDIT 中,进行一次审计设置就在 SYSAUDIT 中增加一条对应的记录,取消审计则删除 SYSAUDIT 中相应的记录。

SYSAUDITOR.SYSAUDIT表结构:

数据类型 说明 系统函数
LEVEL SMALLINT 审计级别 SF_GET_AUDIT_LEVELNAME
UID INTEGER 用户 ID
TVPID INTEGER 表/视图/触发器/存储过程函数 ID
COLID SMALLINT 列 ID
TYPE SMALLINT 审计类型 SF_GET_AUDIT_TYPENAME
WHENEVER SMALLINT 审计情况 SF_GET_AUDIT_WHENEVERNAME
SQL > SELECT * FROM SYSAUDIT;
#|LEVEL |UID     |TVPID |COLID |TYPE  |WHENEVER|
-+------+--------+------+------+------+--------+
1|     1|50331649|    -1|    -1|     9|       3|
2|     1|50331649|    -1|    -1|    12|       3|
3|     1|50331649|    -1|    -1|    13|       3|

SQL> SELECT SF_GET_AUDIT_LEVELNAME(LEVEL) AS 审计级别, SF_GET_AUDIT_TYPENAME(TYPE) 审计项, SF_GET_AUDIT_WHENEVERNAME("WHENEVER") 审计条件 FROM SYSAUDIT;

审计级别 审计项     审计条件
-------- ---------- --------
STMT     TABLESPACE ALL
STMT     USER       ALL
STMT     ROLE       ALL

1、系统级审计

系统级审计无法也无需由用户进行设置,只要审计开关打开就会自动生成对应审计记录。

系统级审计选项

审计的数据库操作 说明
数据库系统启动关闭 区分第一次启动、正常退出后启动、异常退出后启动和还原库后第一次启动
审计空间不足告警 系统定时检测如果审计空间不足就会生成审计记录
数据库版本升级 包括数据字典版本、回滚段版本等
主备之间 redo 日志传输故障和恢复 包括主备之间 redo 日志传输异常和恢复两种
SP_SET_ENABLE_AUDIT 打开/关闭审计开关
SP_AUDIT_STMT/SP_NOAUDIT_STMT 设置/取消语句级审计
SP_AUDIT_OBJECT 设置对象级审计
SP_AUDIT_SET_ENC 设置审计加密
SP_DROP_AUDIT_FILE 删除审计文件
SP_SWITCH_AUDIT_FILE 切换审计文件
SP_SET_PARA_VALUE 设置 DM.INI 文件中整型的参数值
SP_SET_PARA_STRING_VALUE 设置 DM.INI 文件中字符型的参数值
SP_SET_PARA_DOUBLE_VALUE 设置 DM.INI 文件中浮点型的参数值
SF_SET_SYSTEM_PARA_VALUE 修改整型、double、varchar 的静态配置参数或动态配置参数
SF_SET_SESSION_PARA_VALUE 设置会话级 INI 参数在当前会话上的值
SP_RESET_SESSION_PARA_VALUE 重置会话级 INI 参数在当前会话上的值,使得当前会话的参数值和全局值一致
SP_SET_PARAM_IN_SESSION 设置指定会话的会话级 INI 参数的值
SP_SET_SQLLOG_INI 修改 SQLLOG.INI 文件的内容
SP_DELETE_SQLLOG_INI_MODE 删除 SQLLOG.INI 文件中的模式

2、语句级审计(STMT

语句级审计的动作是全局的,不对应具体的数据库对象。其审计选项如表所示。

审计选项 审计的数据库操作 说明
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
创建/删除同义词
OPERATOR CREATE OPERATOR
DROP OPERATOR
创建/删除自定义运算符
GRANT GRANT 授予权限操作
REVOKE REVOKE 回收权限操作
AUDIT AUDIT 设置审计操作
NOAUDIT NOAUDIT 取消审计操作
INSERT TABLE INSERT INTO TABLE 表上的插入操作
UPDATE TABLE UPDATE TABLE 表上的修改操作
DELETE TABLE DELETE FROM TABLE 表上的删除操作
SELECT TABLE SELECT FROM TABLE 表上的查询操作
EXECUTE PROCEDURE CALL PROCEDURE 调用存储过程或函数操作
PACKAGE CREATE PACKAGE
DROP PACKAGE
创建/删除包规范
PACKAGE BODY CREATE PACKAGE BODY
DROP PACKAGE BODY
创建/删除包体
MAC POLICY CREATE POLICY
ALTER POLICY
DROP POLICY
创建/修改/删除策略
MAC LEVEL CREATE LEVEL
ALTER LEVEL
DROP LEVEL
创建/修改/删除等级
MAC COMPARTMENT CREATE COMPARTMENT
ALTER COMPARTMENT
DROP COMPARTMENT
创建/修改/删除范围
MAC GROUP CREATE GROUP
ALTER GROUP
DROP GROUP
ALTER GROUP PARENT
创建/修改/删除组,更新父组
MAC LABEL CREATE LABEL
ALTER LABEL
DROP LABEL
创建/修改/删除标记
MAC USER USER SET LEVELS
USER SET COMPARTMENTS
USER SET GROUPS
USER SET PRIVS
设置用户等级/范围/组/特权
MAC TABLE INSERT TABLE POLICY
REMOVE TABLE POLICY
APPLY TABLE POLICY
插入/取消/应用表标记
MAC SESSION SESSION LABEL
SESSION ROW LABEL
RESTORE DEFAULT LABELS
SAVE DEFAULT LABELS
保存/取消会话标记 设置会话默认标记 设置会话行标记
CHECKPOINT CHECKPOINT 检查点(checkpoint)
SAVEPOINT SAVEPOINT 保存点
EXPLAIN EXPLAIN 显示执行计划
NOT EXIST 分析对象不存在导致的错误
DATABASE ALTER DATABASE 修改当前数据库操作
CONNECT LOGIN LOGOUT 登录/退出操作
COMMIT COMMIT 提交操作
ROLLBACK ROLLBACK 回滚操作
SET TRANSACTION SET TRX ISOLATION
SET TRX READ WRITE
设置事务的读写属性和隔离级别
BACKUP BACKUP DATABASE
BACKUP TABLESPACE
BACKUP TABLE
BACKUP ARCHIVE
库/表空间/表/归档备份操作
RESTORE RESTORE TABLESPACE
RESTORE TABLE
表空间/表还原操作
DIMP DIMP FULL
DIMP OWNER
DIMP SCHEMA
DIMP TABLE
逻辑导入:库级/用户级/模式级/表级
DEXP DEXP FULL
DEXP OWNER
DEXP SCHEMA
DEXP TABLE
逻辑导出:库级/用户级/模式级/表级
FLDR FLDR IN
FLDR OUT
FLDR 工具导入/导出
WARNING AUD SPACE WARNING 审计剩余可用空间不足
KEY CREATE KEY
DESTROY KEY
生成/销毁密钥
CRYPT ENCRYPT
DECRYPT
数据加密/解密
DTS DTS IN
DTS OUT
DTS 工具迁入/迁出
2.1 设置语句级审计

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

VOID
SP_AUDIT_STMT(
    TYPE VARCHAR(30),
    USERNAME VARCHAR (128),
    WHENEVER VARCHAR (20)
)

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

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

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

  • ALL:所有的
  • SUCCESSFUL:操作成功时
  • FAIL:操作失败时
-- 审计表的创建、修改、删除和清空
SP_AUDIT_STMT('TABLE', 'NULL', 'ALL');

-- 对 SYSDBA 创建、修改、删除用户成功进行审计
SP_AUDIT_STMT('USER', 'SYSDBA', 'SUCCESSFUL');

-- 对用户 CALL进行的表的修改和删除进行审计,不管失败和成功
SP_AUDIT_STMT('UPDATE TABLE', 'CALL', 'ALL');
SP_AUDIT_STMT('DELETE TABLE', 'CALL', 'ALL');
2.2 取消语句级审计

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

VOID
SP_NOAUDIT_STMT(
    TYPE VARCHAR(30),
    USERNAME VARCHAR (128),
    WHENEVER VARCHAR (20)
)

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

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

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

  • ALL:所有的
  • SUCCESSFUL:操作成功时
  • FAIL:操作失败时
-- 取消对表的创建、修改、删除和清空的审计
SP_NOAUDIT_STMT('TABLE', 'NULL', 'ALL');

-- 取消对 SYSDBA 创建、修改、删除用户成功进行审计
SP_NOAUDIT_STMT('USER', 'SYSDBA', 'SUCCESSFUL');

-- 取消对用户 CALL进行的表的修改和删除的审计
SP_NOAUDIT_STMT('UPDATE TABLE', 'CALL', 'ALL');
SP_NOAUDIT_STMT('DELETE TABLE', 'CALL', 'ALL');

3、对象级审计(OBJECT

对象级审计发生在具体的对象上,需要指定模式名以及对象名。其审计选项如表所示。

审计选项 TABLE VIEW COL PROCEDURE FUNCTION TRIGGER
INSERT
UPDATE
DELETE
SELECT
EXECUTE
MERGE INTO
EXECUTE TRIGGER
LOCK TABLE
BACKUP TABLE
RESTORE TABLE
ALL(所有对象级审计选项)

注意:

对于 UPDATE 和 DELETE 操作,因为也需要做 SELECT 操作,所以只要设置审计 SELECT 操作时,UPDATE 和 DELETE 也会作为 SELECT 操作被审计。

创建测试表

CREATE SCHEMA PERSON AUTHORIZATION SYSDBA;

CREATE TABLE PERSON.ADDRESS
(
	uid int,
	ADDRESS1 VARCHAR(100)
);
3.1 设置对象级审计
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:操作失败时
SQL> SELECT SF_GET_AUDIT_LEVELNAME(LEVEL) AS 审计级别, SF_GET_AUDIT_TYPENAME(TYPE) 审计项, SF_GET_AUDIT_WHENEVERNAME("WHENEVER") 审计条件 FROM SYSAUDIT;

审计级别 审计项     审计条件
-------- ---------- ----------
STMT     TABLESPACE ALL
STMT     USER       ALL
STMT     ROLE       ALL
STMT     TABLE      ALL
STMT     USER       SUCCESSFUL
  • 加入对象审计
-- 对 SYSDBA 对表 PERSON.ADDRESS 进行的添加和修改的成功操作进行审计
SQL> SP_AUDIT_OBJECT('INSERT', 'SYSDBA', 'PERSON', 'ADDRESS', 'SUCCESSFUL');
SQL> SP_AUDIT_OBJECT('UPDATE', 'SYSDBA', 'PERSON', 'ADDRESS', 'SUCCESSFUL');
-- 对 SYSDBA 对表 PERSON.ADDRESS 的 ADDRESS1 列进行的修改成功的操作进行审计
SQL> SP_AUDIT_OBJECT('UPDATE','SYSDBA','PERSON','ADDRESS','ADDRESS1','SUCCESSFUL');
SQL> SELECT SF_GET_AUDIT_LEVELNAME(LEVEL) AS 审计级别, SF_GET_AUDIT_TYPENAME(TYPE) 审计项, SF_GET_AUDIT_WHENEVERNAME("WHENEVER") 审计条件 FROM SYSAUDIT;

审计级别 审计项     审计条件
-------- ---------- ----------
STMT     TABLESPACE ALL
STMT     USER       ALL
STMT     ROLE       ALL
STMT     TABLE      ALL
STMT     USER       SUCCESSFUL
OBJECT   INSERT     SUCCESSFUL
OBJECT   UPDATE     SUCCESSFUL
OBJECT   UPDATE     SUCCESSFUL
3.2 测试对象审计
INSERT INTO PERSON.ADDRESS VALUES(1,'福建');
UPDATE PERSON.ADDRESS SET UID = 4;
UPDATE PERSON.ADDRESS SET ADDRESS1 = '上海';
SQL> SELECT USERNAME,SCHNAME,OBJNAME,OPERATION,SUCC_FLAG,SQL_TEXT FROM V$AUDITRECORDS WHERE OBJNAME = 'ADDRESS';
*************************** 1. row ***************************
 USERNAME: SYSDBA
  SCHNAME: PERSON
  OBJNAME: ADDRESS
OPERATION: INSERT
SUCC_FLAG: Y
 SQL_TEXT: INSERT INTO PERSON.ADDRESS VALUES(1,'福建');
*************************** 2. row ***************************
 USERNAME: SYSDBA
  SCHNAME: PERSON
  OBJNAME: ADDRESS
OPERATION: UPDATE
SUCC_FLAG: Y
 SQL_TEXT: UPDATE PERSON.ADDRESS SET ADDRESS1 = '上海';

审计结果表中可以发现,语句1,3被审计记录了,而语句2没有被审计记录

3.3 取消对象级审计
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:操作失败时

取消对象审计

-- 取消对 SYSDBA 对表 PERSON.ADDRESS 进行的添加和修改的成功操作的审计
SP_NOAUDIT_OBJECT('INSERT', 'SYSDBA', 'PERSON', 'ADDRESS', 'SUCCESSFUL');
SP_NOAUDIT_OBJECT('UPDATE', 'SYSDBA', 'PERSON', 'ADDRESS', 'SUCCESSFUL');
-- 取消对 SYSDBA 对表 PERSON.ADDRESS 的 ADDRESS1 列进行的修改成功操作的审计
SP_NOAUDIT_OBJECT('UPDATE','SYSDBA','PERSON','ADDRESS','ADDRESS1','SUCCESSFUL');
SQL> SELECT SF_GET_AUDIT_LEVELNAME(LEVEL) AS 审计级别, SF_GET_AUDIT_TYPENAME(TYPE) 审计项, SF_GET_AUDIT_WHENEVERNAME("WHENEVER") 审计条件 FROM SYSAUDIT;

审计级别 审计项     审计条件
-------- ---------- ----------
STMT     TABLESPACE ALL
STMT     USER       ALL
STMT     ROLE       ALL
STMT     TABLE      ALL
STMT     USER       SUCCESSFUL

4、语句序列审计

DM 还提供了语句序列审计功能,作为语句级审计和对象级审计的补充。语句序列审计需要审计员预先建立一个审计规则,包含 N 条 SQL 语句(SQL1,SQL2……),如果某个会话依次执行了这些 SQL 语句,就会触发审计。

4.1 创建语句序列审计

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

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
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');
4.2 取消语句序列审计
VOID
    SP_AUDIT_SQLSEQ_DEL(
    NAME VARCHAR (128)

删除语句序列审计规则 AUDIT_SQL1

SP_AUDIT_SQLSEQ_DEL('AUDIT_SQL1');

5、总结

  • 只要审计功能被启用,系统级的审计记录就会产生;
  • 在进行数据库审计时,审计员之间没有区别,可以审计所有数据库对象,也可取消其他审计员的审计设置;
  • 语句级审计不针对特定的对象,只针对用户;
  • 对象级审计针对指定的用户与指定的对象进行审计;
  • 在设置审计时,审计选项不区分包含关系,都可以设置;
  • 在设置审计时,审计时机不区分包含关系,都可以进行设置;
  • 如果用户执行的一条语句与设置的若干审计项都匹配,只会在审计文件中生成一条审计记录。

七、常用的审计命令

1、开启审计

在 DM 系统中,专门为审计设置了开关,要使用审计功能首先要打开审计开关。审计开关由过程 VOID SP_SET_ENABLE_AUDIT(param int)控制,过程执行完后会立即生效,param 有三种取值:

  • 0:关闭审计
  • 1:打开普通审计
  • 2:打开普通审计和实时审计

缺省值为 0。

SP_SET_ENABLE_AUDIT (1);

注意

审计开关必须由具有数据库审计员权限的管理员进行设置,DBA权限是开不了的。

2、查看审计开关状态

SELECT PARA_NAME,PARA_VALUE FROM V$DM_INI WHERE PARA_NAME='ENABLE_AUDIT';

3、查看审计设置信息

SELECT * FROM SYSAUDIT;

4、查看语句序列审计设置信息

SELECT * FROM SYSAUDITSQLSEQ;

5、查看审计详细记录

SELECT * FROM V$AUDITRECORDS;

SYSAUDITOR.V$AUDITRECORDS结构

数据类型 说明
USERID INTEGER 用户 ID
USERNAME VARCHAR(128) 用户名
ROLEID INTEGER 角色 ID。 没有具体角色的用户和 SQL 序列审计,没用角色信息。
ROLENAME VARCHAR(128) 角色名。 没有具体角色的用户和 SQL 序列审计,没用角色信息。
IP VARCHAR(25) IP 地址
SCHID INTEGER 模式 ID
SCHNAME VARCHAR(128) 模式名
OBJID INTEGER 对象 ID
OBJNAME VARCHAR(128) 对象名
OPERATION VARCHAR(128) 操作类型名
SUCC_FLAG CHAR(1) 成功标记
SQL_TEXT VARCHAR(8188) SQL 文本
DESCRIPTION VARCHAR(8188) 描述信息
OPTIME DATETIME 操作时间
MAC VARCHAR(25) 操作对应的 MAC 地址
SEQNO TINYINT DMDSC 环境下表示生成审计记录的节点号,非 DMDSC 环境下始终 0
BIND_INFO VARCHAR(8188) 绑定参数具体值,如果绑定参数是复杂类型,仅记录类型名,不记录具体值

6、审计相关函数

名称 用途 参数说明
SP_SET_ENABLE_AUDIT 打开/关闭审计开关
SP_AUDIT_STMT/SP_NOAUDIT_STMT 设置/取消语句级审计
SP_AUDIT_OBJECT 设置对象级审计
SP_AUDIT_SQLSEQ_START
SP_AUDIT_SQLSEQ_ADD
SP_AUDIT_SQLSEQ_END
设置语句序列审计
SP_AUDIT_SQLSEQ_DEL 取消语句序列审计
SP_DROP_AUDIT_FILE 删除指定时间点之前的审计文件,但是不会删除 DM 当前正在使用的审计文件。 TIME_STR:指定的时间字符串
TYPE:审计文件类型,0 表示删除普通审计文件,1 表示删除实时审计文件
SP_SWITCH_AUDIT_FILE 切换是指生成一个新的审计文件,并将新生成的审计信息存储在新生成的审计文件中。一般用在审计文件被删除无法存储审计信息,或任何需要生成新审计文件的情况下。 AUDIT_SWITCH:切换开关值,取值 1 或 2。
1 表示切换普通审计文件;2 表示同时切换普通和实时审计文件。对于 DMDSC 环境仅切换当前节点审计文件。
SF_GET_AUDIT_TYPENAME 表SYSAUDIT.TYPE 值的意义描述 TYPE: 审计类型,对应 SYSAUDIT 中 TYPE 字段值
SF_GET_AUDIT_LEVELNAME 表SYSAUDIT.LEVEL 值的意义描述 LEVEL: 审计级别,对应 SYSAUDIT 中 LEVEL 字段值
SF_GET_AUDIT_WHENEVERNAME 表SYSAUDIT.WHENEVER 值的意义描述 WHENEVER :审计记录生成时机,对应 SYSAUDIT 中 WHENEVER 字段值
-- 指定删除 2015-12-6 16:30:00 以前的普通审计文件
SP_DROP_AUDIT_FILE('2015-12-6 16:30:00',0);

达梦社区:https://eco.dameng.com

相关推荐

  1. 审计功能

    2024-03-10 07:04:02       41 阅读
  2. 数据库如何开启数据库审计

    2024-03-10 07:04:02       24 阅读
  3. 数据库文档

    2024-03-10 07:04:02       63 阅读
  4. 数据库

    2024-03-10 07:04:02       30 阅读
  5. 数据库-学习

    2024-03-10 07:04:02       28 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-10 07:04:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-10 07:04:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-10 07:04:02       82 阅读
  4. Python语言-面向对象

    2024-03-10 07:04:02       91 阅读

热门阅读

  1. Basis运维日常检查清单- Checklist

    2024-03-10 07:04:02       42 阅读
  2. 面向对象——设计模式

    2024-03-10 07:04:02       44 阅读
  3. CentOS 7.9 安装 openGauss 2.1.0 之剥茧抽丝

    2024-03-10 07:04:02       44 阅读
  4. webpack5基础--12_开发服务器&自动化

    2024-03-10 07:04:02       47 阅读
  5. [BUG]Windows安装WSL报错

    2024-03-10 07:04:02       49 阅读
  6. ColorStateList在自定义Drawable中的应用

    2024-03-10 07:04:02       42 阅读
  7. 初识 Verilog

    2024-03-10 07:04:02       43 阅读