我被要求审计MySQL表中的任何/所有更改。有没有人知道有什么工具可以帮助我做到这一点,或者我需要编写自己的解决方案?
如果我编写自己的审计,我最初的想法是创建一个单独的表,并在PHP代码中构建一系列更改。类似于"fieldname1 -> oldvalue | fieldname2 -> oldvalue,...“。如果您发现此方法存在重大问题,请与我联系。
发布于 2008-10-20 15:32:30
捕获对DB表的所有更改的唯一可靠方法是在服务器上使用触发器。修改自己的代码来审计更改的风险是,来自另一个应用程序/用户等的更改将不会被捕获。
话虽如此,我不确定MySQL 4是否支持触发器。
发布于 2008-10-20 15:09:39
使用trigger检测更改并将before/after值写入日志表。
发布于 2008-10-20 21:25:10
如果您因为缺少触发器支持而最终手动处理解决方案,我强烈建议您不要只将更改转储到字符串blob中。总有一天,你会被要求查询这些数据,最终你将不得不进行一系列的字符串解析来得到你的数据。(我在这里根据经验发言。)
最简单的方法是创建一个影子审计表,该表具有与原始表相同的所有列,外加一个更改日期列和一个顺序id。然后你手头就有了整个历史,可以用你需要的任何格式重建,你可以随意查询它。
https://stackoverflow.com/questions/218722
复制相似问题