我被要求审核MySQL表中的任何/所有更改。有没有人知道有什么工具可以帮助我这样做,还是我需要编写自己的解决方案?

如果我编写自己的审计,我最初认为它可以创建一个单独的表并在PHP代码中构建一系列更改。类似于“fieldname1 - > oldvalue | fieldname2 - > oldvalue,...“如果您发现此方法存在重大问题,请告知我们。

有帮助吗?

解决方案

捕获数据库表所有更改的唯一可靠方法是在服务器上使用触发器。修改自己的代码以审核更改的风险是不会捕获来自其他应用程序/用户等的更改。

话虽如此,我不确定MySQL 4是否有触发支持。

其他提示

使用触发器检测更改并编写在日志表的值之前/之后。

如果由于缺乏触发支持而最终手动滚动解决方案,我强烈建议您不要只是将更改转储到字符串blob中。有一天,您将被要求查询该数据,您将不得不进行一堆字符串解析以恢复数据。 (我是根据这里的经验说的。)

最简单的方法是创建一个影子审核表,其中包含与原始表相同的所有列,以及更改日期列和序列ID。然后,您可以掌握整个历史记录,以您需要的任何格式进行重建,您可以随意查询。

SoftTree数据库审计有MySQL支持,可能会做你想要的事情:

http://www.softtreetech.com/idbaudit.htm

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top