如何设计我的应用程序,以便无法编辑或删除审计跟踪?

时间:2013-01-15 07:32:57

标签: database audit audit-trail

我遇到这个问题,我需要审计跟踪(通常存储在数据库中),即使对于DBA和系统管理员也不可编辑和删除。

一种方法是应用加密和校验和,但这只允许检测更改或防止窥探。它不会阻止DBA删除行。

对此事的任何讨论都表示赞赏。

3 个答案:

答案 0 :(得分:2)

如果您希望审计跟踪即使是DBA和系统管理员也不可编辑,您需要将它们存储在其控制范围内的设备之外。

然而,这会导致同样的问题 - 该系统的DBA和系统管理员将能够编辑它们。

最好的办法是建立一个系统,将这些系统存放在两个不同的位置,这些位置不共享管理员,并定期进行比较检查。

或者,当特定用户或特定客户端创建触发器时,您可以在更新/删除时使用触发器。如果进行了这样的非应用程序更新或删除,则可以对这些触发器进行编程以发送电子邮件或文本消息。

应该知道 - 在admin / dba社区中众所周知存在这样的触发器。您将无法阻止更新或删除,但肯定会让他们远离该表。

然而,仍有一个问题,即删除或修改触发器代码的能力。

答案 1 :(得分:1)

存在“一次写入”归档存储系统,例如来自Plan 9的Venti。这并不能阻止任何有物理访问权限的人带磁铁到硬盘或类似的当然;)

一个足够精明的系统管理员可以创建一个稍微修改过的数据版本,并替换对通风分数的引用,但同样精明的系统管理员仍然可以恢复原始数据。

无论如何,我认为你可以从学习仅附加存储系统中学到很多东西。与数据库相比,它们对于存储审计跟踪非常有意义。

答案 2 :(得分:0)

存在充当嗅探器并且能够记录在数据库上执行的每个命令的设备。 IBM Guardium就是一个例子。