达梦数据库审计
用SYSAUDITOR审计管理员用户登录 审计有三种状态:
0:关闭审计
1:打开普通审计
2:打开普通审计和实时审计
----查看审计状态
SELECT * FROM V$DM_INI WHERE PARA_NAME='ENABLE_AUDIT';

----打开审计功能
SQL> SP_SET_ENABLE_AUDIT (1);

审计文件存放在数据库的 SYSTEM_PATH 指定的路径
select para_name,para_value from v$dm_ini where para_name='SYSTEM_PATH';

审计文件命名格式为“AUDITGUID创建时间.log”,其中“GUID”为DM 给定的一个唯一值。审计文件的大小可以通过 DM 的 INI 参数 AUDIT_MAX_FILE_SIZE 指定。当单个审计文件超过指定大小时,系统会自动切换审计文件,自动创建新的审计文件,审计记录将写入新的审计文件中。AUDIT_MAX_FILE_SIZE 为动态系统级参数,缺省值为 100M,DBA用户可通过系统过程 SP_SET_PARA_VALUE 对其进行动态修改,有效值范围为 1~4096M
select para_name,para_value from v$dm_ini where para_name='AUDIT_MAX_FILE_SIZE';

sysdba用户执行
SP_SET_PARA_VALUE (1,'AUDIT_MAX_FILE_SIZE',200)
随着系统的运行,审计记录将会不断增加,审计文件需要更多的磁盘空间。在极限情况下,审计记录可能会因为磁盘空间不足而无法写入审计文件,最终导致系统无法正常运行。对这种情况的处理有两种策略,通过设置 DM 的 INI 参数 AUDIT_FILE_FULL_MODE 进行配置。AUDIT_FILE_FULL_MODE 为静态参数,可通过系统过程SP_SET_PARA_VALUE 进行修改,但是修改需要重新启动 DM 数据库服务器才能生效。当将 AUDIT_FILE_FULL_MODE 置为 1 时,将删除最老的审计文件,直至有足够的空间创建新审计文件;当将AUDIT_FILE_FULL_MODE 置为 2 时,将不再写审计记录,默认值为 1。
select para_name,para_value from v$dm_ini where para_name='AUDIT_FILE_FULL_MODE';

审计表的创建、修改和删除。
SP_AUDIT_STMT('TABLE', 'NULL', 'ALL');
SP_AUDIT_STMT('TABLE', 'NULL', 'ALL');
对SYSDBA所有操作进行审计, 不管失败和成功
SP_AUDIT_STMT('ALL', 'SYSDBA','ALL');
对用户SYSDBA 进行的表进行增删改查审计,不管失败和成功。
SP_AUDIT_STMT('UPDATE TABLE', 'SYSDBA', 'ALL');
SP_AUDIT_STMT('DELETE TABLE', 'SYSDBA', 'ALL');
SP_AUDIT_STMT('INSERT TABLE', 'SYSDBA', 'ALL');
SP_AUDIT_STMT('SELECT TABLE', 'SYSDBA', 'ALL');
取消
SP_NOAUDIT_STMT('UPDATE TABLE', 'SYSDBA', 'ALL');
SP_NOAUDIT_STMT('DELETE TABLE', 'SYSDBA', 'ALL');
SP_NOAUDIT_STMT('INSERT TABLE', 'SYSDBA', 'ALL');
SP_NOAUDIT_STMT('SELECT TABLE', 'SYSDBA', 'ALL');
对所有用户,对所有用户的登录操作进行记录,不管是否登陆成功:
SP_AUDIT_STMT('CONNECT', 'NULL', 'ALL');
取消
SP_NOAUDIT_OBJECT('CONNECT', 'NULL', 'ALL');
所有用户对SYSDBA.test表进行的操作审计:
SP_AUDIT_OBJECT('ALL', 'NULL', 'SYSDBA', 'test', 'ALL');
取消
SP_NOAUDIT_OBJECT
对 SYSDBA 对表 PERSON.ADDRESS 进行的添加和修改的操作进行审计。
SP_AUDIT_OBJECT('UPDATE', 'SYSDBA', 'PERSON', 'ADDRESS', 'ALL');
对所有用户所有操作进行审计
SP_AUDIT_STMT('ALL', 'NULL', 'ALL');
审计相关视图
审计设置存放于 DM 字典表 SYSAUDIT 中,进行一次审计设置就在 SYSAUDIT 中增加一条对应的记录:
SELECT * FROM SYSAUDITOR.SYSAUDIT;
审计记录的具体内容存在在V$AUDITRECORDS视图中:
select * from SYSAUDITOR.V$AUDITRECORDS ;
指定删除 2015-12-616:30:00 以前的普通审计文件。
SP_DROP_AUDIT_FILE(‘2015-12-616:30:00’,0);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了