相关疑难解决方法(0)

关于捕获审计跟踪的数据库设计的想法

如何在数据库中维护数据日志?

我必须记录每行所做的每个更改.这意味着我不能允许DELETEUPDATE执行.

我怎么能保留这样的日志?

database audit database-design

41
推荐指数
4
解决办法
2万
查看次数

允许用户使用SQLAlchemy从db审计跟踪回滚

我开始将SQLAlchemy用于一个新项目,我计划在这个项目中实现类似于此静默提议的审计跟踪:

因为我已经拥有了"有趣"对象的完整历史,所以我在考虑允许用户回滚给定版本,让他们有可能无限制undo.

这可以用SQLAlchemy以干净的方式完成吗?

在内部API(业务逻辑和ORM)中公开此功能的正确方法是什么?

我是一路走来的路user.rollback(ver=42).

python audit sqlalchemy rollback

4
推荐指数
1
解决办法
1134
查看次数

为我们的应用程序实现审计跟踪

我想为我们的系统添加审计跟踪,所以当发生任何添加/删除/更新操作时,我将使用以下信息记录它: -

  1. CRUD操作类型.是添加,删除还是更新.

  2. 已修改的记录ID.

  3. 日期和时间.

现在我发现了两种方法; 要么拥有一个包含以下字段的审计跟踪表: -

  • ID.如123445.
  • CRUD_description.如删除
  • RECORD_ID.如Qaeop12771
  • 日期.如1june2O13

或者有两个表用于CRUD操作的查找表,例如

  • CRUD_ID.如3.
  • CRUD_Description.such如删除.

审计审判将参考上表: -

  • ID.比如123445.
  • CRUD_ID(这将是CRUD表的外键),例如3.
  • RECORD_ID.如Qaeop12771
  • 日期.如1june2O13

那么哪种方法更好?

第二个问题如果我将遵循第二种方法.然后我最好在我的代码中使用CRUD_ID,例如,如果oprration是delete,我的代码可能如下: -

Inset into audit_trail (ID, CRUD_ID, Record_ID, Date) values ( 123445, 3,12771,1june2O13) //CRUID 3 represents delete operation.
Run Code Online (Sandbox Code Playgroud)

最好的祝福

sql-server database-design

1
推荐指数
1
解决办法
3421
查看次数