Symfony 2.7 application audit trail - Best practicies
我有一个大型的多租户 Symfony2 应用程序,它使用教义和 MySQL 中大约 40 到 50 个数据库表。
有没有人有过设置审计日志记录流程的经验,以至少跟踪在大型应用程序中创建、编辑或删除数据的所有 Doctrine 操作?
理想情况下,它应该"刚刚发生",这样其他开发人员就不必担心让他们的新实体或代码"可记录"。
我没有要满足的特定要求(HIPAA 等),但我希望尽可能接近任何 ISO27000 最佳实践。
我最初的计划是考虑使用一些 Doctrine 生命周期回调来获取信息并将其推送到没有 DELETE 或 UPDATE 权限的单独 MySQL 数据库中。我担心这种方法可能会对性能产生很大影响。
以前有没有人这样做过或类似的事情对我计划的方法有任何提示或警告?
如果重要的话,整个堆栈都在 AWS 上运行,我可以在 EU-WEST-1 区域使用他们的任何服务。我已经在使用 RDS、Elasticache 和 SQS。
谢谢!
OroPlatform 是在 Symfony 2.8 中构建的,并且有一个名为 OroDataAuditBundle 的包,它仅在两个表中深入审计所有 Doctrine 实体操作(创建、更新、删除):
在 UI 中看起来像这样:
你可能无法在你的项目中使用这个包——因为它是为 OroPlatform 构建的——但是,你至少可以从他们的架构中获得一些灵感。
如果您想检查此审核系统是否正常工作,他们在 https://demo.orocrm.com 中有一个在线演示。只需以管理员身份登录并尝试创建条目,然后您就可以检查 https://demo.orocrm.com/audit 中的所有审计条目。