Grails + MySQL用于创建审计表的策略

时间:2015-01-27 12:11:45

标签: mysql grails audit-tables

我们的grails应用程序会创建用于存储域对象的普通表。

出于欺诈和监管目的,必须对关键表进行审核,即每次更改都应记录在案,以及何时更改。

在之前的项目中,我们创建了一个新的审计模式,并将正常表的副本放入其中,每个表都与普通表相同,但是:

  1. 4个附加列:userId,IP,DataChanged,Action(更新,删除,插入)
  2. ID不再是唯一的
  3. 没有约束,没有PK,没有索引。
  4. 在名为audit的模式中。
  5. 在他上面。在项目中,Oracle DB编写了一个复杂的脚本来读取普通模式中的表和列,并在审计模式中创建相应的表/列,然后在普通的DB表上创建插入/更新/删除触发器。

    我们需要为MySQL做类似的事情。

    为了安全起见,我们需要在DB(非代码)级别执行此操作。

    我们想知道Grails是否可以帮助我们解决这个问题。例如

    1. 创建一个新的grails审计项目,复制(剪切和粘贴)域类,添加额外的列。这将至少自动生成模式。然后我们需要手工编写触发器,并将它们放在正常项目的BootStrap中。
    2. 使用grails脚本从主模式中读取表和列元数据,并创建必要的sql语句以生成审计模式,并在普通模式表上生成触发器。
    3. 根本不要使用grails,编写整个脚本来创建审计表和grails之外的触发器。不幸的是,我们没有DBA或SQL脚本大师。
    4. 使用已经写过的插件来执行此操作(无法找到任何内容)。
    5. 别的什么?
    6. 有什么想法吗?其他人做过这样的事情吗?

0 个答案:

没有答案