SYSAUDITOR用户执行
SP_SET_ENABLE_AUDIT(1);
查询当前的审计状态
SELECT * FROM V$DM_INI WHERE PARA_NAME=‘ENABLE_AUDIT’;
开启语句级审计
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');
关闭语句级审计
SP_NOAUDIT_STMT(
TYPE VARCHAR(30),
USERNAME VARCHAR (128),
WHENEVER VARCHAR (20)
)
SP_AUDIT_STMT('CONNECT', 'NULL', 'ALL');
SP_AUDIT_OBJECT (
TYPE VARCHAR(30),
USERNAME VARCHAR (128),
SCHNAME VARCHAR (128),
TVNAME 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');
--删除指定时间点之前的审计记录
SP_DROP_AUDIT_FILE(
TIME_STR VARCHAR(128),
TYPE INT
);
--参数说明:
● TIME_STR:指定的时间字符串
● TYPE:审计文件类型,0表示删除普通审计文件,1表示删除实时审计文件
SP_DROP_AUDIT_FILE('2025-12-16 16:30:00',0);
SP_SET_PARA_VALUE(1,'AUDIT_MAX_FILE_SIZE',200);
参数说明:
AUDIT_MAX_FILE_SIZE
动态,默认100M,审计文件的最大大小,以兆为单位。有效值范围(1~4096M)
SP_SET_PARA_VALUE(2,'AUDIT_FILE_FULL_MODE',1);
参数说明:
静态,默认1,审计文件满后的处理方式,1:删除文件;2:不删除文件,也不添加审计记录
审计用户可通过查询V$AUDITRECORDS动态视图获取审计文件存放路径下审计文件中审计记录的具体信息,审计记录内容包括操作者的用户名、所在站点、所进行的操作、操作的对象、操作时间、当前审计条件等。
SELECT * FROM V$AUDITRECORDS;
文章
阅读量
获赞
