mysql – 如何跟踪数据库表中多列的更改以进行审计?

这个问题已经多次回答:here,here和外部链接herehere.

我理解上述线程中描述的方法,我打算使用this方法.

但我在实施这一点时几乎没有什么基本疑虑.

在我的情况下,一行中的多个列可以同时更新,因此遵循正确的实现方式:

>找出操作类型(INSERT / UPDATE / DELETE)
>找出正在更新的列
>在更新之前阅读整行
>在Audit表中为每个要更改的列插入一行,包含旧值和新值(以及其他详细信息)
>更新表格

最佳答案
假设您使用的是最新版本的MysqL,我个人会使用triggers.

假设它们或多或少像我在其他产品(例如Oracle)中熟悉的那样工作,那么你的问题会变得更简单,因为你在行上放置了一个“更新”触发器并用它来更新每个字段的审计表你对…感兴趣.

可能需要注意的是:如果您的应用程序仅将数据库作为一个用户登录(例如,如果使用连接池,则是一种常见方法),记录实际用户身份可能会很棘手.

相关文章

昨天的考试过程中,有个考点的服务器蓝屏重启后发现Mysql启动不了(5.6.45 x32版本,使用innoDB),重装后...
整数类型 标准 SQL 中支持 INTEGER 和 SMALLINT 这两种类型,MySQL 数据库除了支持这两种类型以外,还扩...
一条 SQL 查询语句结构如下: SELECT DISTINCT <select_list> FROM <left_table&...
数据备份 1. 备份数据库 使用 mysqldump 命令可以将数据库中的数据备份成一个文本文件,表的结构和数据...
概述 在实际工作中,在关系数据库(MySQL、PostgreSQL)的单表数据量上亿后,往往会出现查询和分析变慢...
概述 触发器是 MySQL 的数据库对象之一,不需要程序调用或手工启动,而是由事件来触发、激活,从而实现...