首页 > 数据库 > 国内数据库 > 一文轻松搞定,达梦数据库审计
审计机制是 DM 数据库管理系统安全管理的重要组成部分之一。
DM 数据库除了提供数据安全保护措施外,还提供对日常事件的事后审计监督。
DM 具有一个灵活的审计子系统,可以通过它来记录系统级事件、个别用户的行为以及对数据库对象的访问。通过考察、跟踪审计信息,数据库审计员可以查看用户访问的形式以及曾试图对该系统进行的操作,从而采取积极、有效的应对措施。
系统的启动、关闭、部分系统事件以及一些系统过程和函数的调用,此级别的审计无法也无需由用户进行设置,只要审计开关打开就会自动生成对应审计记录;
导致影响特定类型数据库对象的特殊 SQL 或语句组的审计。如 AUDIT TABLE 将审计 CREATE TABLE、ALTER TABLE 和 DROP TABLE 等语句;
审计作用在特殊对象上的语句。如 test 表上的 INSERT 语句。
审计记录只存储在操作系统的物理文件中,并没有一份额外的数据同时存储在数据库表里。
通过SQL访问记录时,是数据库底层直接读取这些文件并展示,并非从某个数据表中调取。
文件路径:
文件默认存放在 SYSTEM_PATH 路径下,如果你像之前那样配置了 AUD_PATH,则会存放于你指定的目录。
查看:
SQL> SELECT PARA_NAME,PARA_VALUE,DEFAULT_VALUE,PARA_TYPE FROM V$DM_INI WHERE PARA_NAME IN ('SYSTEM_PATH','AUD_PATH');
行号 PARA_NAME PARA_VALUE DEFAULT_VALUE PARA_TYPE
---------- ----------- ------------- ------------- ---------
1 SYSTEM_PATH /dm8/data/CJC NULL READ ONLY
2 AUD_PATH NULL NULL READ ONLY
已用时间: 6.183(毫秒). 执行号:602.
文件命名:
文件命名格式为 AUDIT_<创建时间>.log。其中 GUID 是系统生成的唯一标识,创建时间 则记录了文件的生成时间。这样的命名便于管理和识别。
[dmdba@cjc-db-11 ~]$ ls -lrth /dm8/data/CJC/AUDIT_CJC_* -rw-r--r-- 1 dmdba dinstall 100M May 28 14:09 /dm8/data/CJC/AUDIT_CJC_F2C72DB0F2C72DB07EFBFF9F7841ABD7_2026-5-28-14-8-7.log -rw-r--r-- 1 dmdba dinstall 100M May 28 14:31 /dm8/data/CJC/AUDIT_CJC_723011D9723011D99BFC6D667841ABD7_2026-5-28-14-9-8.log -rw-r--r-- 1 dmdba dinstall 100M May 28 14:34 /dm8/data/CJC/AUDIT_CJC_BBBAAB74BBBAAB74A3D091087841ABD7_2026-5-28-14-31-23.log -rw-r--r-- 1 dmdba dinstall 100M May 28 14:34 /dm8/data/CJC/AUDIT_CJC_6453E61A6453E61A7C8201087841ABD7_2026-5-28-14-34-47.log -rw-r--r-- 1 dmdba dinstall 100M May 28 14:59 /dm8/data/CJC/AUDIT_CJC_5E6571655E657165E25BC5427841ABD7_2026-5-28-14-59-48.log
不是文本格式,不能直接查看文件:
[dmdba@cjc-db-11 ~]$ file /dm8/data/CJC/AUDIT_CJC_* /dm8/data/CJC/AUDIT_CJC_5E6571655E657165E25BC5427841ABD7_2026-5-28-14-59-48.log: data /dm8/data/CJC/AUDIT_CJC_6453E61A6453E61A7C8201087841ABD7_2026-5-28-14-34-47.log: data /dm8/data/CJC/AUDIT_CJC_723011D9723011D99BFC6D667841ABD7_2026-5-28-14-9-8.log: data /dm8/data/CJC/AUDIT_CJC_BBBAAB74BBBAAB74A3D091087841ABD7_2026-5-28-14-31-23.log: data /dm8/data/CJC/AUDIT_CJC_F2C72DB0F2C72DB07EFBFF9F7841ABD7_2026-5-28-14-8-7.log: data
访问方式:
文件存储于操作系统,但可以通过数据库提供的 V$AUDITRECORDS 视图来查询记录。
SQL> SELECT USERNAME,IP,OBJNAME,OPERATION,SQL_TEXT,DESCRIBTION FROM V$AUDITRECORDS; 行号 USERNAME IP OBJNAME OPERATION SQL_TEXT DESCRIBTION ---------- ---------- --- ------- --------- ----------------------- ----------------------------------- 1 SYSDBA ::1 EXECUTE SP_SET_ENABLE_AUDIT(1); 没有执行权限 2 SYSAUDITOR ::1 EXECUTE SP_SET_ENABLE_AUDIT(1);
其中审计规则,是存储在 DM 字典表 SYSAUDIT 中:
审计设置存放于 DM 字典表 SYSAUDIT 中,进行一次审计设置就在 SYSAUDIT 中增加一条对应的记录,取消审计则删除 SYSAUDIT 中相应的记录。
当使用 DM 提供的审计机制进行了审计设置后,除语句序列审计设置外的审计设置信息都记录在数据字典表 SYSAUDITOR.SYSAUDIT 中。
审计用户可通过查询 V$AUDITRECORDS 动态视图获取审计文件存放路径下审计文件中审计记录的具体信息,审计记录内容包括操作者的用户名、所在站点、所进行的操作、操作的对象、操作时间、当前审计条件等。
SQL> show parameter AUD 行号 para_name para_value ---------- -------------------- ---------- 1 AUD_PATH NULL 2 ENABLE_AUDIT 1 3 AUDIT_FILE_FULL_MODE 1 4 AUDIT_SPACE_LIMIT 8192 5 AUDIT_MAX_FILE_SIZE 100 6 AUDIT_IP_STYLE 0 7 AUDIT_FLUSH_LEVEL 0
SQL> SELECT PARA_NAME,PARA_VALUE,DEFAULT_VALUE,PARA_TYPE FROM V$DM_INI WHERE PARA_NAME like '%AUD%'; 行号 PARA_NAME PARA_VALUE DEFAULT_VALUE PARA_TYPE ---------- -------------------- ---------- ------------- --------- 1 AUD_PATH NULL NULL READ ONLY 2 ENABLE_AUDIT 1 0 READ ONLY 3 AUDIT_FILE_FULL_MODE 1 1 IN FILE 4 AUDIT_SPACE_LIMIT 8192 8192 IN FILE 5 AUDIT_MAX_FILE_SIZE 100 100 SYS 6 AUDIT_IP_STYLE 0 0 SYS 7 AUDIT_FLUSH_LEVEL 0 0 SYS 7 rows got
参数对应描述:
SQL> SELECT DESCRIPTION FROM V$DM_INI WHERE PARA_NAME like '%AUD%'; 行号 DESCRIPTION ---------- ----------------------------------------------------------------------------------------------------- 1 audit log path 2 Flag For Allowing Audit, 0: no audit 1: normal audit 2:normal audit and realtime audit 3 operation mode when audit file is full, 1: delete old file; 2: no longer to write audit records 4 audit space limit in Megabytes 5 maximum audit file size in Megabytes 6 IP style in audit record, 0: IP, 1: IP(hostname), default 0 7 Level to flush audit record, 0: flush by statement; 1: flush by transaction; 2: flush delay. default is 0 7 rows got
参数说明:
审计开关
在 DM 系统中,专门为审计设置了开关,要使用审计功能首先要打开审计开关。
审计开关由过程 VOID SP_SET_ENABLE_AUDIT(param int);
控制,过程执行完后会立即生效,param 有三种取值:
0:关闭审计
1:打开普通审计
2:打开普通审计和实时审计
审计文件存放路径,默认 NULL,存储在 SYSTEM_PATH 路径下,也就是数据文件所在目录
SQL> show parameter SYSTEM_PATH 行号 para_name para_value ---------- ----------- ------------- 1 SYSTEM_PATH /dm8/data/CJC [dmdba@cjc-db-11 ~]$ ls -lrth /dm8/data/CJC/AUDIT_CJC_* -rw-r--r-- 1 dmdba dinstall 100M May 28 14:09 /dm8/data/CJC/AUDIT_CJC_F2C72DB0F2C72DB07EFBFF9F7841ABD7_2026-5-28-14-8-7.log -rw-r--r-- 1 dmdba dinstall 100M May 28 14:31 /dm8/data/CJC/AUDIT_CJC_723011D9723011D99BFC6D667841ABD7_2026-5-28-14-9-8.log -rw-r--r-- 1 dmdba dinstall 100M May 28 14:34 /dm8/data/CJC/AUDIT_CJC_BBBAAB74BBBAAB74A3D091087841ABD7_2026-5-28-14-31-23.log -rw-r--r-- 1 dmdba dinstall 100M May 28 14:34 /dm8/data/CJC/AUDIT_CJC_6453E61A6453E61A7C8201087841ABD7_2026-5-28-14-34-47.log -rw-r--r-- 1 dmdba dinstall 100M May 28 14:59 /dm8/data/CJC/AUDIT_CJC_5E6571655E657165E25BC5427841ABD7_2026-5-28-14-59-48.log
修改参数:
[dmdba@cjc-db-11 ~]$ cat /dm8/data/CJC/dm.ini|grep -i AUD_PATH [dmdba@cjc-db-11 ~]$ vi /dm8/data/CJC/dm.ini ### 新增参数: AUD_PATH = /dm8/audit
新建审计目录,存放审计文件:
[dmdba@cjc-db-11 ~]$ mkdir /dm8/audit
重启数据库生效
[dmdba@cjc-db-11 ~]$ DmServiceCJC stop [dmdba@cjc-db-11 ~]$ DmServiceCJC start
检查参数
SQL> show parameter AUD_PATH 行号 para_name para_value ---------- --------- ---------- 1 AUD_PATH /dm8/audit
检查文件:
[dmdba@cjc-db-11 ~]$ ls -lrth /dm8/audit/ total 100M -rw-r--r-- 1 dmdba dinstall 100M May 28 15:57 AUDIT_CJC_F3021903F30219036919E90E7841ABD7_2026-5-28-15-57-58.log [dmdba@cjc-db-11 ~]$
operation mode when audit file is full, 1: delete old file; 2: no longer to write audit records
随着系统的运行,审计记录将会不断增加,审计文件需要更多的磁盘空间。在极限情况下,审计记录可能会因为磁盘空间不足而无法写入审计文件,最终导致系统无法正常运行。对这种情况的处理有两种策略,通过设置 DM 的 INI 参数 AUDIT_FILE_FULL_MODE 进行配置。
当将 AUDIT_FILE_FULL_MODE 置为 1 时,将删除最老的审计文件,直至有足够的空间创建新审计文件,若将所有可以删除的审计文件都删除后空间仍旧不够,则数据库会挂起不再处理任何请求,直至磁盘空间被清理出足够创建新审计文件的空间;
当将 AUDIT_FILE_FULL_MODE 置为 2 时,将不再写审计记录;
当将 AUDIT_FILE_FULL_MODE 置为 3 时,结合 1 和 2,先尝试删老审计文件,再创建审计文件,若空间仍不足则不再审计,系统会定时检测是否有空余空间,如果有则恢复审计;
缺省值为 3。(不同版本,默认值不同)
AUDIT_FILE_FULL_MODE 为静态参数,可通过系统过程 SP_SET_PARA_VALUE 进行修改,但是修改需要重新启动 DM 数据库服务器才能生效。
DM 的审计文件总存储空间大小由 INI 参数 AUDIT_SPACE_LIMIT 进行限制,该参数取值范围为 204800~1024*1024M,0 表示不限制,缺省为 0。
AUDIT_SPACE_LIMIT 为静态参数,可通过系统过程 SP_SET_PARA_VALUE 进行修改,但是修改需要重新启动 DM 数据库服务器才能生效。
单个审计文件的大小可以通过 DM 的 INI 参数 AUDIT_MAX_FILE_SIZE 指定。当单个审计文件超过指定大小时,系统会自动切换审计文件,自动创建新的审计文件,审计记录将写入新的审计文件中。
AUDIT_MAX_FILE_SIZE 为动态系统级参数,有效值范围为 8~4096M,缺省值为 100M,DBA 用户可通过系统过程 SP_SET_PARA_VALUE 对其进行动态修改。
审计记录中的 IP 地址的显示格式由 DM 的 INI 参数 AUDIT_IP_STYLE 进行控制,
设置为 0 时,仅显示 IP;
设置为 1 时,显示 IP 和主机名;缺省值为 0。
AUDIT_IP_STYLE 为静态参数,可通过系统过程 SP_SET_PARA_VALUE 进行修改,但是修改需要重新启动 DM 数据库服务器才能生效。
审计记录的刷盘方式由动态系统级的 INI 参数 AUDIT_FLUSH_LEVEL 进行控制。
当设置 AUDIT_FLUSH_LEVEL 为 0 时,表示设置为语句级刷盘,一条语句执行结束进行一次审计记录刷盘操作;
当设置 AUDIT_FLUSH_LEVEL 为 1 时,表示设置为事务级刷盘,一个事务执行结束执行一次审计日志刷盘操作;
当设置 AUDIT_FLUSH_LEVEL 为 2 时,表示设置为延迟刷盘,当审计记录缓存满时(缓存大小固定为 8MB)自动刷盘。
默认是0:
SQL> SELECT PARA_NAME,PARA_VALUE,DEFAULT_VALUE,PARA_TYPE FROM V$DM_INI WHERE PARA_NAME='AUDIT_FLUSH_LEVEL'; 行号 PARA_NAME PARA_VALUE DEFAULT_VALUE PARA_TYPE ---------- ----------------- ---------- ------------- --------- 1 AUDIT_FLUSH_LEVEL 0 0 SYS 已用时间: 6.646(毫秒). 执行号:702.
在 DM 系统中,专门为审计设置了开关,要使用审计功能首先要打开审计开关。
审计开关由过程 VOID SP_SET_ENABLE_AUDIT(param int);
控制,过程执行完后会立即生效,param 有三种取值:
0:关闭审计
1:打开普通审计
2:打开普通审计和实时审计
实时侵害检测系统用于实时分析当前用户的操作,并查找与该操作相匹配的实时审计分析规则,如果规则存在,则判断该用户的行为是否是侵害行为,确定侵害等级,并根据侵害等级采取相应的响应措施。
查看参数值:缺省值为 0。
SELECT PARA_NAME,PARA_VALUE,DEFAULT_VALUE,PARA_TYPE FROM V$DM_INI WHERE PARA_NAME='ENABLE_AUDIT'; 行号 PARA_NAME PARA_VALUE DEFAULT_VALUE PARA_TYPE ---------- ------------ ---------- ------------- --------- 1 ENABLE_AUDIT 0 0 READ ONLY 已用时间: 6.797(毫秒). 执行号:504.
查看参数描述:
SELECT DESCRIPTION FROM V$DM_INI WHERE PARA_NAME='ENABLE_AUDIT'; 行号 DESCRIPTION ---------- --------------------------------------------------------------------------------------- 1 Flag For Allowing Audit, 0: no audit 1: normal audit 2:normal audit and realtime audit 已用时间: 3.227(毫秒). 执行号:505.
打开普通审计开关:
注意
审计开关必须由具有数据库审计员权限的管理员进行设置,也就是 SYSAUDITOR 用户。
SYSDBA没有权限:
SQL> SP_SET_ENABLE_AUDIT(1); SP_SET_ENABLE_AUDIT(1); [-5598]:没有执行权限. 已用时间: 1.127(毫秒). 执行号:0.
需要使用 SYSAUDITOR 用户:
[dmdba@cjc-db-11 ~]$ disql SYSAUDITOR/tGP2hdeb_wRs:5238 SQL> SP_SET_ENABLE_AUDIT(1); DMSQL 过程已成功完成 已用时间: 2.244(毫秒). 执行号:601.
再次查看参数:
SQL> SELECT PARA_NAME,PARA_VALUE,DEFAULT_VALUE,PARA_TYPE FROM V$DM_INI WHERE PARA_NAME='ENABLE_AUDIT'; 行号 PARA_NAME PARA_VALUE DEFAULT_VALUE PARA_TYPE ---------- ------------ ---------- ------------- --------- 1 ENABLE_AUDIT 1 0 READ ONLY 已用时间: 6.798(毫秒). 执行号:602.
系统的启动、关闭、部分系统事件以及一些系统过程和函数的调用,此级别的审计无法也无需由用户进行设置,只要审计开关打开就会自动生成对应审计记录;
系统级审计的审计操作及对应说明:
01.数据库系统启动关闭 区分第一次启动、正常退出后启动、异常退出后启动和还原库后第一次启动 02.审计空间不足告警 系统定时检测如果审计空间不足就会生成审计记录 03.数据库版本升级 包括数据字典版本、回滚段版本等 04.主备之间 redo 日志传输故障和恢复 包括主备之间 redo 日志传输异常和恢复两种 05.SP_SET_ENABLE_AUDIT 打开/关闭审计开关 06.SP_AUDIT_STMT/SP_NOAUDIT_STMT 设置/取消语句级审计 07.SP_AUDIT_XX/SP_NOAUDIT_XX 作为系统过程,本身不触发语句级审计 08.SP_AUDIT_OBJECT/SP_NOAUDIT_OBJECT 设置对象级审计/取消对象级审计 09.SP_AUDIT_SET_ENC 设置审计加密 10.SP_AUDIT_SQLSEQ_START 审计序列设置开始 11.SP_AUDIT_SQLSEQ_ADD 审计序列添加 SQL 12.SP_AUDIT_SQLSEQ_END 审计序列设置结束 13.SP_AUDIT_SQLSEQ_DEL 删除审计序列 14.SP_DROP_AUDIT_FILE 删除审计文件 15.SP_SWITCH_AUDIT_FILE 切换审计文件 16.SP_SET_PARA_VALUE 设置 DM.INI 文件中整型的参数值 17.SP_SET_PARA_STRING_VALUE 设置 DM.INI 文件中字符型的参数值 18.SP_SET_PARA_DOUBLE_VALUE 设置 DM.INI 文件中浮点型的参数值 19.SF_SET_SYSTEM_PARA_VALUE 修改整型、double、varchar 的静态配置参数或动态配置参数 20.SF_SET_SESSION_PARA_VALUE 设置会话级 INI 参数在当前会话上的值 21.SP_RESET_SESSION_PARA_VALUE 重置会话级 INI 参数在当前会话上的值,使得当前会话的参数值和全局值一致 22.SP_SET_PARAM_IN_SESSION 设置指定会话的会话级 INI 参数的值 23.SP_SET_SQLLOG_INI 修改 SQLLOG.INI 文件的内容 24.SP_DELETE_SQLLOG_INI_MODE 删除 SQLLOG.INI 文件中的模式
重启数据库(正常重启)
SQL> shutdown immediate; 操作已执行 已用时间: 0.551(毫秒). 执行号:0.
[dmdba@cjc-db-11 ~]$ DmServiceCJC start Starting DmServiceCJC: [ OK ]
模拟异常退出
[dmdba@cjc-db-11 ~]$ ps -ef|grep dmserver|grep -v grep dmdba 2593 1 0 14:31 pts/0 00:00:00 /dm8/dbms/bin/dmserver path=/dm8/data/CJC/dm.ini -noconsole [dmdba@cjc-db-11 ~]$ kill 2593 [dmdba@cjc-db-11 ~]$ DmServiceCJC start [dmdba@cjc-db-11 CJC]$ ps -ef|grep dmserver|grep -v grep dmdba 2759 1 0 14:34 pts/0 00:00:01 /dm8/dbms/bin/dmserver path=/dm8/data/CJC/dm.ini -noconsole [dmdba@cjc-db-11 CJC]$ DmServiceCJC start
查询审计数据:
SQL> SELECT USERNAME,IP,OBJNAME,OPERATION,SQL_TEXT,DESCRIBTION FROM V$AUDITRECORDS; 行号 USERNAME IP OBJNAME OPERATION SQL_TEXT DESCRIBTION ---------- ---------- --- ------- --------- ----------------------- ----------------------------------- 1 SYSDBA ::1 EXECUTE SP_SET_ENABLE_AUDIT(1); 没有执行权限 2 SYSAUDITOR ::1 EXECUTE SP_SET_ENABLE_AUDIT(1); 3 SHUTDOWN SHUTDOWN SHUTDOWN 4 STARTUP STARTUP Instance startup with nomral exit 5 SHUTDOWN SHUTDOWN SHUTDOWN 6 STARTUP STARTUP Instance startup with nomral exit 7 STARTUP STARTUP Instance startup with abnormal exit 7 rows got 已用时间: 1.459(毫秒). 执行号:501.
查看审计文件:
[dmdba@cjc-db-11 ~]$ cd /dm8/data/CJC/ [dmdba@cjc-db-11 CJC]$ ls -lrth AUDIT_CJC_* -rw-r--r-- 1 dmdba dinstall 100M May 28 14:09 AUDIT_CJC_F2C72DB0F2C72DB07EFBFF9F7841ABD7_2026-5-28-14-8-7.log -rw-r--r-- 1 dmdba dinstall 100M May 28 14:31 AUDIT_CJC_723011D9723011D99BFC6D667841ABD7_2026-5-28-14-9-8.log -rw-r--r-- 1 dmdba dinstall 100M May 28 14:34 AUDIT_CJC_BBBAAB74BBBAAB74A3D091087841ABD7_2026-5-28-14-31-23.log -rw-r--r-- 1 dmdba dinstall 100M May 28 14:34 AUDIT_CJC_6453E61A6453E61A7C8201087841ABD7_2026-5-28-14-34-47.log [dmdba@cjc-db-11 CJC]$ file AUDIT_CJC_* AUDIT_CJC_6453E61A6453E61A7C8201087841ABD7_2026-5-28-14-34-47.log: data AUDIT_CJC_723011D9723011D99BFC6D667841ABD7_2026-5-28-14-9-8.log: data AUDIT_CJC_BBBAAB74BBBAAB74A3D091087841ABD7_2026-5-28-14-31-23.log: data AUDIT_CJC_F2C72DB0F2C72DB07EFBFF9F7841ABD7_2026-5-28-14-8-7.log: data
语句级审计的动作是全局的,不对应具体的数据库对象。
语法如下:
SP_AUDIT_STMT( TYPE VARCHAR(30), USERNAME VARCHAR (128), WHENEVER VARCHAR (20) )
参数说明:
TYPE 语句级审计选项,即上表中的第一列
USERNAME 用户名,NULL 表示不限制
WHENEVER 审计时机,可选的取值为:
ALL:所有的
SUCCESSFUL:操作成功时
FAIL:操作失败时
示例:审计表的创建、修改、删除和清空。
[dmdba@cjc-db-11 ~]$ disql SYSAUDITOR/tGP2hdeb_wRs:5238
SQL> SP_AUDIT_STMT('TABLE', 'NULL', 'ALL');
DMSQL 过程已成功完成
已用时间: 6.882(毫秒). 执行号:501.
其中:TABLE 包含:
创建/修改/删除/清空基表操作
CREATE TABLE
ALTER TABLE
DROP TABLE
TRUNCATE TABLE
创建测试数据:
[dmdba@cjc-db-11 ~]$ sh conn_cjc.sh 服务器[LOCALHOST:5238]:处于普通打开状态 登录使用时间 : 36.283(ms) disql V8 SQL> create table t0601(id int,name varchar(10)); 操作已执行 已用时间: 14.152(毫秒). 执行号:601. SQL> insert into t0601 values(1,'x'),(2,'y'),(3,'z'); 影响行数 3 已用时间: 0.962(毫秒). 执行号:602. SQL> commit; 操作已执行 已用时间: 1.567(毫秒). 执行号:603. SQL> alter table t0601 add column age int; 操作已执行 已用时间: 74.814(毫秒). 执行号:604. SQL> truncate table t0601; 操作已执行 已用时间: 11.530(毫秒). 执行号:605. SQL> drop table t0601; 操作已执行 已用时间: 101.349(毫秒). 执行号:606.
查看审计数据:
SQL> SELECT USERNAME,IP,OPTIME,OBJNAME,OPERATION,SQL_TEXT FROM V$AUDITRECORDS;
行号 USERNAME IP OPTIME OBJNAME OPERATION SQL_TEXT
---------- ---------- --- -------------------------- ------- -------------- --------------------------------------------
1 2026-05-28 15:57:58.000000 STARTUP STARTUP
2 2026-05-28 18:07:14.000000 SHUTDOWN SHUTDOWN
3 2026-06-01 10:47:57.000000 STARTUP STARTUP
4 SYSAUDITOR ::1 2026-06-01 10:49:35.000000 EXECUTE SP_AUDIT_STMT('TABLE', 'NULL', 'ALL');
5 CJC ::1 2026-06-01 10:56:37.000000 CREATE TABLE create table t0601(id int,name varchar(10));
6 CJC ::1 2026-06-01 10:57:12.000000 ALTER TABLE alter table t0601 add column age int;
7 CJC ::1 2026-06-01 10:57:25.000000 TRUNCATE TABLE truncate table t0601;
8 CJC ::1 2026-06-01 10:57:29.000000 DROP TABLE drop table t0601;
8 rows got
已用时间: 1.031(毫秒). 执行号:508.
例 2 对 SYSDBA 创建、修改、删除用户成功进行审计。
SQL> SP_AUDIT_STMT('USER', 'SYSDBA', 'SUCCESSFUL');
DMSQL 过程已成功完成
已用时间: 2.602(毫秒). 执行号:509.
其中:USER 包含:
创建/修改/删除用户操作
CREATE USER
ALTER USER
DROP USER
创建测试数据:
[dmdba@cjc-db-11 ~]$ sh conn.sh 服务器[LOCALHOST:5238]:处于普通打开状态 登录使用时间 : 3.210(ms) disql V8 SQL> create user cjc0601 identified by "eMhUtbs6e_BSx"; 操作已执行 已用时间: 14.503(毫秒). 执行号:701. SQL> ALTER USER cjc0601 identified by "eMhUtbs6e_BSx123"; 操作已执行 已用时间: 4.561(毫秒). 执行号:702. SQL> drop user cjc0601; 操作已执行 已用时间: 69.393(毫秒). 执行号:703.
查看审计数据:不显示创建用户的口令信息
SQL> set pagesize 100
SQL> SELECT USERNAME,IP,OPTIME,OBJNAME,OPERATION,SQL_TEXT FROM V$AUDITRECORDS;
行号 USERNAME IP OPTIME OBJNAME OPERATION SQL_TEXT
---------- ---------- --- -------------------------- ------- -------------- ----------------------------------------------
1 2026-05-28 15:57:58.000000 STARTUP STARTUP
2 2026-05-28 18:07:14.000000 SHUTDOWN SHUTDOWN
3 2026-06-01 10:47:57.000000 STARTUP STARTUP
4 SYSAUDITOR ::1 2026-06-01 10:49:35.000000 EXECUTE SP_AUDIT_STMT('TABLE', 'NULL', 'ALL');
5 CJC ::1 2026-06-01 10:56:37.000000 CREATE TABLE create table t0601(id int,name varchar(10));
6 CJC ::1 2026-06-01 10:57:12.000000 ALTER TABLE alter table t0601 add column age int;
7 CJC ::1 2026-06-01 10:57:25.000000 TRUNCATE TABLE truncate table t0601;
8 CJC ::1 2026-06-01 10:57:29.000000 DROP TABLE drop table t0601;
9 SYSAUDITOR ::1 2026-06-01 11:18:38.000000 EXECUTE SP_AUDIT_STMT('USER', 'SYSDBA', 'SUCCESSFUL');
10 SYSDBA ::1 2026-06-01 11:19:32.000000 CREATE USER create user cjc0601 identified by ******;
11 SYSDBA ::1 2026-06-01 11:20:06.000000 ALTER USER ALTER USER cjc0601 identified by ******;
12 SYSDBA ::1 2026-06-01 11:20:11.000000 DROP USER drop user cjc0601;
12 rows got
已用时间: 0.617(毫秒). 执行号:511.
对用户 CJC 用户进行的表的修改和删除进行审计,不管失败和成功。
SQL> SP_AUDIT_STMT('UPDATE TABLE', 'CJC', 'ALL');
DMSQL 过程已成功完成
已用时间: 1.731(毫秒). 执行号:512.
SQL> SP_AUDIT_STMT('DELETE TABLE', 'CJC', 'ALL');
DMSQL 过程已成功完成
已用时间: 2.006(毫秒). 执行号:513.
创建测试数据:
[dmdba@cjc-db-11 ~]$ sh conn_cjc.sh 服务器[LOCALHOST:5238]:处于普通打开状态 登录使用时间 : 4.327(ms) disql V8 SQL> create table t0601(id int,name varchar(5)); 操作已执行 已用时间: 5.440(毫秒). 执行号:901. SQL> insert into t0601 values(1,'x'),(2,'y'),(3,'z'); 影响行数 3 已用时间: 0.731(毫秒). 执行号:902. SQL> commit; 操作已执行 已用时间: 1.307(毫秒). 执行号:903. SQL> update t0601 set id=300 where name='z'; 影响行数 1 已用时间: 1.030(毫秒). 执行号:904. SQL> commit; 操作已执行 已用时间: 1.226(毫秒). 执行号:905. SQL> update t0601 set id=100 where name='a'; 影响行数 0 已用时间: 1.115(毫秒). 执行号:906. SQL> commit; 操作已执行 已用时间: 0.302(毫秒). 执行号:907. SQL> delete from t0601 where id=2; 影响行数 1 已用时间: 1.100(毫秒). 执行号:908. SQL> commit; 操作已执行 已用时间: 1.290(毫秒). 执行号:909. SQL> delete from t0601 where id=2000; 影响行数 0 已用时间: 1.016(毫秒). 执行号:910. SQL> commit; 操作已执行 已用时间: 0.511(毫秒). 执行号:911. SQL> delete from t0601 where abc=1; delete from t0601 where abc=1; 第1 行附近出现错误[-2111]:无效的列名[abc]. 已用时间: 0.512(毫秒). 执行号:0. SQL> commit; 操作已执行 已用时间: 0.605(毫秒). 执行号:912
查看审计数据:执行失败的语句,也会被审计。
SQL> SELECT USERNAME,IP,OPTIME,OBJNAME,OPERATION,SQL_TEXT,SUCC_FLAG FROM V$AUDITRECORDS;
行号 USERNAME IP OPTIME OBJNAME OPERATION SQL_TEXT SUCC_FLAG
---------- ---------- --- -------------------------- ------- -------------- ---------------------------------------------- ---------
1 2026-05-28 15:57:58.000000 STARTUP STARTUP Y
2 2026-05-28 18:07:14.000000 SHUTDOWN SHUTDOWN Y
3 2026-06-01 10:47:57.000000 STARTUP STARTUP Y
4 SYSAUDITOR ::1 2026-06-01 10:49:35.000000 EXECUTE SP_AUDIT_STMT('TABLE', 'NULL', 'ALL'); Y
5 CJC ::1 2026-06-01 10:56:37.000000 CREATE TABLE create table t0601(id int,name varchar(10)); Y
6 CJC ::1 2026-06-01 10:57:12.000000 ALTER TABLE alter table t0601 add column age int; Y
7 CJC ::1 2026-06-01 10:57:25.000000 TRUNCATE TABLE truncate table t0601; Y
8 CJC ::1 2026-06-01 10:57:29.000000 DROP TABLE drop table t0601; Y
9 SYSAUDITOR ::1 2026-06-01 11:18:38.000000 EXECUTE SP_AUDIT_STMT('USER', 'SYSDBA', 'SUCCESSFUL'); Y
10 SYSDBA ::1 2026-06-01 11:19:32.000000 CREATE USER create user cjc0601 identified by ******; Y
11 SYSDBA ::1 2026-06-01 11:20:06.000000 ALTER USER ALTER USER cjc0601 identified by ******; Y
12 SYSDBA ::1 2026-06-01 11:20:11.000000 DROP USER drop user cjc0601; Y
13 SYSAUDITOR ::1 2026-06-01 13:53:08.000000 EXECUTE SP_AUDIT_STMT('UPDATE TABLE', 'CJC', 'ALL'); Y
14 SYSAUDITOR ::1 2026-06-01 13:53:13.000000 EXECUTE SP_AUDIT_STMT('DELETE TABLE', 'CJC', 'ALL'); Y
15 CJC ::1 2026-06-01 13:54:55.000000 CREATE TABLE create table t0601(id int,name varcahr(5)); N
16 CJC ::1 2026-06-01 13:55:06.000000 CREATE TABLE create table t0601(id int,name varchar(5)); Y
17 CJC ::1 2026-06-01 13:55:48.000000 t0601 UPDATE update t0601 set id=300 where name='z'; Y
18 CJC ::1 2026-06-01 13:56:04.000000 t0601 UPDATE update t0601 set id=100 where name='a'; Y
19 CJC ::1 2026-06-01 13:56:15.000000 t0601 DELETE delete from t0601 where id=2; Y
20 CJC ::1 2026-06-01 13:56:27.000000 t0601 DELETE delete from t0601 where id=2000; Y
21 CJC ::1 2026-06-01 14:00:08.000000 t0601 DELETE delete from t0601 where abc=1; N
21 rows got
已用时间: 0.725(毫秒). 执行号:517.
对象级审计发生在具体的对象上,需要指定模式名以及对象名。

语法如下:
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 用户名。为空串或 NULL 时表示不限定用户
SCHNAME 模式名。为空串或 NULL 时表示不限定模式
TVNAME 表名、视图名、存储过程名。不支持取值为空串或 NULL
COLNAME 列名。为空串或 NULL 时表示不限定列
WHENEVER 审计时机,可选的取值为:
ALL:所有的
SUCCESSFUL:操作成功时
FAIL:操作失败时
其中,对于 UPDATE 和 DELETE 操作,因为也需要做 SELECT 操作,所以只要设置审计 SELECT 操作时,UPDATE 和 DELETE 也会作为 SELECT 操作被审计。
添加审计,审计 CJC 用户,表 T0601 表NAME列 的 INSERT操作:
SQL> SP_AUDIT_OBJECT('INSERT', 'CJC','CJC','T0601', 'NAME', 'SUCCESSFUL');
DMSQL 过程已成功完成
已用时间: 3.141(毫秒). 执行号:519.
测试数据:
SQL> insert into cjc.t0601(id) values(100);
影响行数 1
已用时间: 0.772(毫秒). 执行号:915.
SQL> commit;
操作已执行
已用时间: 1.302(毫秒). 执行号:916.
SQL> insert into cjc.t0601(name) values('a'),('b'),('c');
影响行数 3
已用时间: 0.898(毫秒). 执行号:917.
SQL> commit;
操作已执行
已用时间: 1.245(毫秒). 执行号:918.
查看审计数据:
SQL> SELECT USERNAME,IP,OPTIME,OBJNAME,OPERATION,SQL_TEXT,SUCC_FLAG FROM V$AUDITRECORDS;
行号 USERNAME IP OPTIME OBJNAME OPERATION SQL_TEXT SUCC_FLAG
---------- ---------- --- -------------------------- ------- -------------- --------------------------------------------------------------------- ---------
1 2026-05-28 15:57:58.000000 STARTUP STARTUP Y
2 2026-05-28 18:07:14.000000 SHUTDOWN SHUTDOWN Y
3 2026-06-01 10:47:57.000000 STARTUP STARTUP Y
4 SYSAUDITOR ::1 2026-06-01 10:49:35.000000 EXECUTE SP_AUDIT_STMT('TABLE', 'NULL', 'ALL'); Y
5 CJC ::1 2026-06-01 10:56:37.000000 CREATE TABLE create table t0601(id int,name varchar(10)); Y
6 CJC ::1 2026-06-01 10:57:12.000000 ALTER TABLE alter table t0601 add column age int; Y
7 CJC ::1 2026-06-01 10:57:25.000000 TRUNCATE TABLE truncate table t0601; Y
8 CJC ::1 2026-06-01 10:57:29.000000 DROP TABLE drop table t0601; Y
9 SYSAUDITOR ::1 2026-06-01 11:18:38.000000 EXECUTE SP_AUDIT_STMT('USER', 'SYSDBA', 'SUCCESSFUL'); Y
10 SYSDBA ::1 2026-06-01 11:19:32.000000 CREATE USER create user cjc0601 identified by ******; Y
11 SYSDBA ::1 2026-06-01 11:20:06.000000 ALTER USER ALTER USER cjc0601 identified by ******; Y
12 SYSDBA ::1 2026-06-01 11:20:11.000000 DROP USER drop user cjc0601; Y
13 SYSAUDITOR ::1 2026-06-01 13:53:08.000000 EXECUTE SP_AUDIT_STMT('UPDATE TABLE', 'CJC', 'ALL'); Y
14 SYSAUDITOR ::1 2026-06-01 13:53:13.000000 EXECUTE SP_AUDIT_STMT('DELETE TABLE', 'CJC', 'ALL'); Y
15 CJC ::1 2026-06-01 13:54:55.000000 CREATE TABLE create table t0601(id int,name varcahr(5)); N
16 CJC ::1 2026-06-01 13:55:06.000000 CREATE TABLE create table t0601(id int,name varchar(5)); Y
17 CJC ::1 2026-06-01 13:55:48.000000 t0601 UPDATE update t0601 set id=300 where name='z'; Y
18 CJC ::1 2026-06-01 13:56:04.000000 t0601 UPDATE update t0601 set id=100 where name='a'; Y
19 CJC ::1 2026-06-01 13:56:15.000000 t0601 DELETE delete from t0601 where id=2; Y
20 CJC ::1 2026-06-01 13:56:27.000000 t0601 DELETE delete from t0601 where id=2000; Y
21 CJC ::1 2026-06-01 14:00:08.000000 t0601 DELETE delete from t0601 where abc=1; N
22 SYSAUDITOR ::1 2026-06-01 14:09:12.000000 EXECUTE SP_AUDIT_OBJECT('INSERT', 'CJC', 'T0601', 'NAME', 'SUCCESSFUL'); N
23 SYSAUDITOR ::1 2026-06-01 14:10:16.000000 EXECUTE SP_AUDIT_OBJECT('INSERT', 'CJC','CJC','T0601', 'NAME', 'SUCCESSFUL'); Y
24 CJC ::1 2026-06-01 14:11:36.000000 t0601 INSERT insert into cjc.t0601(id) values(100); Y
25 CJC ::1 2026-06-01 14:12:00.000000 t0601 INSERT insert into cjc.t0601(name) values('a'),('b'),('c'); Y
25 rows got
已用时间: 0.595(毫秒). 执行号:522.
SYSDBA 用户没有查询权限:
SQL> select * from SYSAUDIT; select * from SYSAUDIT; [-5504]:没有[SYSAUDITOR.SYSAUDIT]对象的查询权限. 已用时间: 0.772(毫秒). 执行号:0.
需要使用 SYSAUDITOR 用户:
SQL> select * from SYSAUDIT; 未选定行 已用时间: 3.689(毫秒). 执行号:605.
当使用 DM 提供的审计机制进行了审计设置后,除语句序列审计设置外的审计设置信息都记录在数据字典表 SYSAUDITOR.SYSAUDIT 中
序号 列 数据类型 说明 1 LEVEL SMALLINT 审计级别 2 UID INTEGER 用户 ID 3 TVPID INTEGER 表/视图/触发器/存储过程函数 ID 4 COLID SMALLINT 列 ID 5 TYPE SMALLINT 审计类型 6 WHENEVER SMALLINT 审计情况
测试数据如下:
SQL> select * from SYSAUDITOR.SYSAUDIT; 行号 LEVEL UID TVPID COLID TYPE WHENEVER ---------- ----------- ----------- ----------- ----------- ----------- ----------- 1 1 -1 -1 -1 15 3 2 1 50331649 -1 -1 12 1 3 1 50331748 -1 -1 33 3 4 1 50331748 -1 -1 32 3 5 2 50331748 1049 1 50 1 已用时间: 0.658(毫秒). 执行号:527.
语句序列审计设置信息记录在数据字典表 SYSAUDITOR.SYSAUDITSQLSEQ 中,结构如下表所示:
序号 列 数据类型 说明 1 NAME VARCHAR(128) 语句序列审计规则名 2 SQLSEQ INTEGER 语句序列中的 SQL 语句序号 3 SQLSTR VARCHAR(8188) 语句序列中的 SQL 语句
审计类型用户可以查询上述数据字典表查看审计设置信息。
只要 DM 系统处于审计活动状态,系统按审计设置进行审计活动,并将审计信息写入审计文件。审计用户可通过查询 V$AUDIT_SPACE 动态视图获取审计文件存储空间的相关信息,动态视图的结构如下表所示:
序号 列 数据类型 说明 1 AUD_PATH VARCHAR(256) 审计文件存放路径 2 AUDIT_FILE_FULL_MODE INTEGER 剩余空间不足时的处理方式:1:审计文件创建失败,卡住; 2:审计文件创建失败,不再审计; 3:结合 1 和 2,先尝试删老审计文件,再创建审计文件失败则不再审计 3 AUDIT_MAX_FILE_SIZE INTEGER 单个审计文件的最大大小,单位 MB 4 AUD_SPACE_LIMIT INTEGER 审计文件总存储空间大小限制,单位 MB 5 AUD_SPACE_FREE INTEGER 可用审计文件存储空间大小,单位 MB 6 AUDIT_IS_NORMAL CHAR(1) 审计是否正常。Y:是;N:否,不再审计
审计用户可通过查询 V$AUDIT_FILE 动态视图获取审计文件存放路径下审计文件的具体信息,动态视图的结构如下表所示:
测试数据如下:
SQL> select * from V$AUDIT_SPACE; 行号 AUD_PATH AUDIT_FILE_FULL_MODE AUDIT_MAX_FILE_SIZE AUD_SPACE_LIMIT AUD_SPACE_FREE ---------- ---------- -------------------- ------------------- --------------- -------------- 1 /dm8/audit 1 100 8192 8191 已用时间: 0.460(毫秒). 执行号:529.
序号 列 数据类型 说明 1 FILEPATH VARCHAR(256) 审计文件的完整路径 2 SGUID INTEGER 服务器的唯一标识,仅用于判断审计文件与库是否匹配 3 RT_FLAG INTEGER 是否实时审计 4 HPC_SEQNO INTEGER DSC 节点号 5 VERSION INTEGER 版本号 6 DBNAME VARCHAR(128) 库名称 7 IS_FULL INTEGER 审计文件是否已满。1:已满,0:未满。 8 BEGIN_TIME DATETIME(6) 审计文件的创建时间 9 LENGTH BIGINT 审计文件的长度,单位 BYTE
审计用户可通过查询 V$AUDITRECORDS 动态视图获取审计文件存放路径下审计文件中审计记录的具体信息,审计记录内容包括操作者的用户名、所在站点、所进行的操作、操作的对象、操作时间、当前审计条件等。动态视图的结构如下表所示:
测试数据如下:
SQL> select FILEPATH from V$AUDIT_FILE; 行号 FILEPATH ---------- ---------------------------------------------------------------------------- 1 /dm8/audit/AUDIT_CJC_F3021903F30219036919E90E7841ABD7_2026-5-28-15-57-58.log 2 /dm8/audit/AUDIT_CJC_02C0502102C0502155732BE07841ABD7_2026-6-1-10-47-57.log 已用时间: 0.878(毫秒). 执行号:532.
[dmdba@cjc-db-11 ~]$ ls -lrth /dm8/audit/ total 200M -rw-r--r-- 1 dmdba dinstall 100M May 28 18:07 AUDIT_CJC_F3021903F30219036919E90E7841ABD7_2026-5-28-15-57-58.log -rw-r--r-- 1 dmdba dinstall 100M Jun 1 14:12 AUDIT_CJC_02C0502102C0502155732BE07841ABD7_2026-6-1-10-47-57.log
序号 列 数据类型 说明 1 USERID INTEGER 用户 ID 2 USERNAME VARCHAR(128) 用户名 3 ROLEID INTEGER 角色 ID。 没有具体角色的用户和 SQL 序列审计,没用角色信息。 4 ROLENAME VARCHAR(128) 角色名。 没有具体角色的用户和 SQL 序列审计,没用角色信息。 5 IP VARCHAR(64) IP 地址 6 SCHID INTEGER 模式 ID 7 SCHNAME VARCHAR(128) 模式名 8 OBJID INTEGER 对象 ID 9 OBJNAME VARCHAR(128) 对象名 10 OPERATION VARCHAR(128) 操作类型名 11 SUCC_FLAG CHAR(1) 成功标记 12 SQL_TEXT VARCHAR(8188) SQL 文本 13 DESCRIPTION VARCHAR(8188) 描述信息 14 OPTIME DATETIME(6) 操作时间 15 MAC VARCHAR(25) 操作对应的 MAC 地址 16 SEQNO TINYINT DMDSC 环境下表示生成审计记录的节点号,非 DMDSC 环境下始终 0 17 BIND_INFO VARCHAR(8188) 绑定参数具体值,如果绑定参数是复杂类型,仅记录类型名,不记录具体值
其中审计记录中的 IP 地址的显示格式由 DM 的 INI 参数 AUDIT_IP_STYLE 进行控制,设置为 0 时,仅显示 IP;设置为 1 时,显示 IP 和主机名;缺省值为 0。AUDIT_IP_STYLE 为静态参数,可通过系统过程 SP_SET_PARA_VALUE 进行修改,但是修改需要重新启动 DM 数据库服务器才能生效。
测试数据如下:
SQL> SELECT USERNAME,IP,OPTIME,OBJNAME,OPERATION,SQL_TEXT,SUCC_FLAG FROM V$AUDITRECORDS;
行号 USERNAME IP OPTIME OBJNAME OPERATION SQL_TEXT SUCC_FLAG
---------- ---------- --- -------------------------- ------- -------------- --------------------------------------------------------------------- ---------
1 2026-05-28 15:57:58.000000 STARTUP STARTUP Y
2 2026-05-28 18:07:14.000000 SHUTDOWN SHUTDOWN Y
3 2026-06-01 10:47:57.000000 STARTUP STARTUP Y
4 SYSAUDITOR ::1 2026-06-01 10:49:35.000000 EXECUTE SP_AUDIT_STMT('TABLE', 'NULL', 'ALL'); Y
5 CJC ::1 2026-06-01 10:56:37.000000 CREATE TABLE create table t0601(id int,name varchar(10)); Y
6 CJC ::1 2026-06-01 10:57:12.000000 ALTER TABLE alter table t0601 add column age int; Y
7 CJC ::1 2026-06-01 10:57:25.000000 TRUNCATE TABLE truncate table t0601; Y
8 CJC ::1 2026-06-01 10:57:29.000000 DROP TABLE drop table t0601; Y
9 SYSAUDITOR ::1 2026-06-01 11:18:38.000000 EXECUTE SP_AUDIT_STMT('USER', 'SYSDBA', 'SUCCESSFUL'); Y
10 SYSDBA ::1 2026-06-01 11:19:32.000000 CREATE USER create user cjc0601 identified by ******; Y
11 SYSDBA ::1 2026-06-01 11:20:06.000000 ALTER USER ALTER USER cjc0601 identified by ******; Y
12 SYSDBA ::1 2026-06-01 11:20:11.000000 DROP USER drop user cjc0601; Y
13 SYSAUDITOR ::1 2026-06-01 13:53:08.000000 EXECUTE SP_AUDIT_STMT('UPDATE TABLE', 'CJC', 'ALL'); Y
14 SYSAUDITOR ::1 2026-06-01 13:53:13.000000 EXECUTE SP_AUDIT_STMT('DELETE TABLE', 'CJC', 'ALL'); Y
15 CJC ::1 2026-06-01 13:54:55.000000 CREATE TABLE create table t0601(id int,name varcahr(5)); N
16 CJC ::1 2026-06-01 13:55:06.000000 CREATE TABLE create table t0601(id int,name varchar(5)); Y
17 CJC ::1 2026-06-01 13:55:48.000000 t0601 UPDATE update t0601 set id=300 where name='z'; Y
18 CJC ::1 2026-06-01 13:56:04.000000 t0601 UPDATE update t0601 set id=100 where name='a'; Y
19 CJC ::1 2026-06-01 13:56:15.000000 t0601 DELETE delete from t0601 where id=2; Y
20 CJC ::1 2026-06-01 13:56:27.000000 t0601 DELETE delete from t0601 where id=2000; Y
21 CJC ::1 2026-06-01 14:00:08.000000 t0601 DELETE delete from t0601 where abc=1; N
22 SYSAUDITOR ::1 2026-06-01 14:09:12.000000 EXECUTE SP_AUDIT_OBJECT('INSERT', 'CJC', 'T0601', 'NAME', 'SUCCESSFUL'); N
23 SYSAUDITOR ::1 2026-06-01 14:10:16.000000 EXECUTE SP_AUDIT_OBJECT('INSERT', 'CJC','CJC','T0601', 'NAME', 'SUCCESSFUL'); Y
24 CJC ::1 2026-06-01 14:11:36.000000 t0601 INSERT insert into cjc.t0601(id) values(100); Y
25 CJC ::1 2026-06-01 14:12:00.000000 t0601 INSERT insert into cjc.t0601(name) values('a'),('b'),('c'); Y
25 rows got
已用时间: 0.595(毫秒). 执行号:522.
https://eco.dameng.com/document/dm/zh-cn/pm/audit.html
欢迎关注我的公众号《 IT小Chen》
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29785807/viewspace-3182991/ ,如需转载,请注明出处,否则将追究法律责任。