首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我应该如何审计(使用MySQL 4) MySQL表中的更改?

我应该如何审计(使用MySQL 4) MySQL表中的更改?
EN

Stack Overflow用户
提问于 2008-10-20 14:55:32
回答 4查看 6.1K关注 0票数 6

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

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2008-10-20 15:32:30

捕获对DB表的所有更改的唯一可靠方法是在服务器上使用触发器。修改自己的代码来审计更改的风险是,来自另一个应用程序/用户等的更改将不会被捕获。

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

票数 3
EN

Stack Overflow用户

发布于 2008-10-20 15:09:39

使用trigger检测更改并将before/after值写入日志表。

票数 3
EN

Stack Overflow用户

发布于 2008-10-20 21:25:10

如果您因为缺少触发器支持而最终手动处理解决方案,我强烈建议您不要只将更改转储到字符串blob中。总有一天,你会被要求查询这些数据,最终你将不得不进行一系列的字符串解析来得到你的数据。(我在这里根据经验发言。)

最简单的方法是创建一个影子审计表,该表具有与原始表相同的所有列,外加一个更改日期列和一个顺序id。然后你手头就有了整个历史,可以用你需要的任何格式重建,你可以随意查询它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/218722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档