发布网友 发布时间:2022-04-20 20:57
共1个回答
热心网友 时间:2023-06-24 22:30
数据审计是触发器的重要功能,其作用是跟踪数据的变化过程,审核操作的合法性与合理性,如果触发不合法的操作,可依据审计的记录把数据恢复到原来的状态。
数据审计业务一般由两个数据表构成,一个是业务表,普通用户可以拥有此表读写权限;
一个是审计表,普通用户不拥有此表读写权限,只有超级用户才拥有此表读写权限,用于记录数据的变化过程。下面以一个案例的方式来说明数据审计的过程和作用。
有一个存储车辆收费信息表t_car,表结构如图车辆收费信息表结构所示,因业务要求,程序要有对该表的数据修改权限,为此需要审计对该表上数据的记录值修改信息,以备查询、跟踪。
车辆收费信息表结构
有一个审计表t_record,表结构如图审计表结构所示,要记录对车辆收费信息表的修改行为的所有信息,以供事后进行审计,判断操作行为是否合法。
审计表存储的内容有修改前pay字段的值、修改后pay字段的值、记录被修改的时间、登录数据库服务器修改数据的ip地址、登录数据库服务器的账号信息。
审计表结构
((1)用audit.sql脚本初始化数据表环境,然后使用触发器记录所有用户对表t_car进行UPDATE操作修改数据的行为。触发器代码如下:DELIMITER//DROPTRIGGERIFEXISTStri_t_car;CREATETRIGGERtri_t_carBEFOREUPDATEONt_carFOREACHROWBEGINIFNEW.pay<>OLD.payTHENINSERTINTOt_record(username