首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django AuditTrail诉Reversion

django AuditTrail诉Reversion
EN

Stack Overflow用户
提问于 2009-05-04 05:02:35
回答 3查看 7.4K关注 0票数 18

我正在开发一个新的web应用程序,我需要将数据库中的任何更改存储到审核表中。这类审计表的目的是,在以后的实际审计中,我们可以了解在某一情况下发生了什么,谁编辑了数据库在进行复杂计算时的状态和状态。因此,大部分审计表将编写,而不是阅读。虽然有时可能会生成报告。

我一直在寻找可用的解决方案

  1. AuditTrail --这就是为什么我倾向于使用它的原因,我可以理解它的单个文件代码。
  2. 倒转 --看起来很简单,可以使用,但不确定如果需要的话修改它有多容易。
  3. rcsField似乎非常复杂,而且对我的需要来说太过复杂。

我没有试过其中的任何一个,所以我想知道一些真正的经验,我应该使用哪一个。哪一个更快,占用的空间更少,易于扩展和维护?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-05-17 06:35:11

正如我在问题中所指出的,rcField似乎满足了我的需求,这很简单,我希望存储对我的表的任何更改,并可能稍后再回到这些更改以生成一些报告。

因此,我测试了AuditTrail和Reversion似乎是一个更完善的应用程序,它有许多特性(我不需要这些特性),而且据我所知,它以XML或YAML格式将数据保存在一个表中,我认为这是一个更好的应用程序。

  1. 会在单个表中生成过多的数据。
  2. 要读取这些数据,我可能无法使用已经存在的数据库工具。

AuditTrail在这方面获胜,因为它为每个表生成一个相应的审计表,因此可以很容易地跟踪更改,每个表数据更少,并且可以很容易地操作和用户进行报表生成。

所以我要和AuditTrail一起去。

票数 2
EN

Stack Overflow用户

发布于 2009-05-04 15:10:02

就我个人而言,我更喜欢在数据库中创建审计表并通过触发器填充,这样就可以存储来自查询窗口的任何更改,甚至是临时查询。我绝不会考虑不基于数据库本身的审计解决方案。这一点很重要,因为对数据库进行恶意更改或实施欺诈的人不太可能通过web界面而直接通过后端进行更改。比起外部黑客,更多的事情发生在心怀不满或盗窃的员工身上。如果您已经在使用ORM,则您的数据将面临风险,因为权限位于表级别,而不是它们所属的sp级别。因此,更重要的是捕获对dat的任何可能的更改,而不仅仅是GUI中的更改。我们有一个动态proc来创建每当新表被添加到数据库时运行的审计表。由于我们的审计表只填充更改,而不填充整个记录,因此我们不需要每次添加字段时都更改它们。

此外,在评估可能的解决方案时,请确保考虑到还原数据以撤消特定更改的难度。一旦您有了审计表,您就会发现这是您需要做的最重要的事情之一。还请考虑,随着数据库模式的更改,维护这些信息将是多么困难。

选择一个解决方案,因为它似乎是最容易理解的,一般不是一个好主意。这应该是您在满足要求、安全性等之后的最低选择标准。

票数 8
EN

Stack Overflow用户

发布于 2009-05-04 07:28:12

我不能给你任何一个真正的经验,但我想做一个观察。

我想AuditTrail你是指Django wiki上的AuditTrail吧。如果是这样的话,我想您应该看一下由同一作者(Marty @gulopine)在他的书“HistoricalRecords”中开发的亲Django。它应该在Django 1.x中运行得更好。

这是我将在即将到来的项目中使用的方法,并不是因为从技术角度来看,它一定会击败其他项目,而是因为它符合该应用程序审计跟踪的“真实世界”期望。

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

https://stackoverflow.com/questions/818823

复制
相关文章

相似问题

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