我用MySQL编写了一个大型的多租户Symfony2应用程序,使用doctrine和大约40到50个数据库表。
是否有人有设置审核日志记录流程的经验,以便至少跟踪在大型应用程序中创建、编辑或删除数据的所有Doctrine操作?
理想情况下,它应该“就这样发生”,这样其他开发人员就不需要担心让他们的新实体或代码“可记录”。
我没有具体的要求(HIPAA等),但如果能尽可能接近任何ISO27000最佳实践,那就太好了。
我最初的计划是考虑使用一些Doctrine生命周期回调来获取信息,并将其推送到没有DELETE或UPDATE权限的单独的MySQL数据库中。我担心这个方法可能会有很大的性能影响。
以前有没有人这样做过,或者任何类似的事情,对我计划中的方法有任何提示或警告?
如果重要的话,整个堆栈都在AWS上运行,我可以在EU-WEST-1区域使用他们的任何服务。我已经在使用RDS、Elasticache和SQS之类的东西了。
谢谢!
发布于 2018-03-15 14:26:38
OroPlatform是在Symfony 2.8中构建的,并且有一个名为OroDataAuditBundle的捆绑包,该捆绑包仅在两个表中审计所有规则实体操作(创建、更新、删除):oro_audit和oro_audit_field。

在UI中看起来是这样的:

你可能无法在你的项目中使用这个包--因为它是为OroPlatform构建的--但是,你至少可以从他们的架构中获得一些灵感。
如果你想检查这个审计系统是否正常工作,他们在https://demo.orocrm.com中有一个在线演示。只需以管理员身份登录并尝试创建条目,然后您将能够检查https://demo.orocrm.com/audit中的所有审计条目。
https://stackoverflow.com/questions/33844213
复制相似问题