Oracle有一个名为Oracle Audit Vault的产品 - DB2可能有一个等价物。
你应该从 预防 。系统不应允许无效操作。期。如果系统允许需要监控的“可疑”操作,即“业务逻辑”,那么您可能更好地实现其他业务逻辑。
如果要在数据库中执行某些操作,可以查看日志传送(术语可能与RDBMS不同,也可能与RDBMS不同)。基本上,任何DML操作都会记录到文件中。您可以将此信息用于备份和时间点恢复,甚至可用于复制/ HA /故障转移/等。如果您将日志发送到“仅附加”的单独的“受信任”系统(即日志传送过程具有创建新日志文件但不修改现有信息的权限)时尚,则您已具有原始审核功能。如果您以安全的方式(即身份验证,不可否认性)执行此操作,您甚至可能非常接近“合规性”:-p
当然,筛选大量的INSERT / UPDATE / DELETE语句并不是最复杂的工作方式。
首先要了解的是您所选DBMS的本机审计功能。这些细节各不相同,但通常提供一种方法来配置审核哪些操作,并为它们生成的审核记录提供安全存储。
接下来要了解的是您要审核的内容。例如,在HIPAA和SOX的情况下,您可能正在查看PII - 个人识别信息。记得关于人们访问奥巴马电话记录或各种名人医疗记录的大惊小怪,或者......因为系统审核了谁阅读了这些记录而被捕,并且审计分析官(AAO)发现名人记录被人们访问谁没有特别授权这样做。因此,这些系统必须记录谁访问每条记录,并发现何时这样做的用户没有真正的商业理由这样做。在这些情况下,似乎用户已经读取了记录的权限,因此如果他们的普通职责要求他们查看记录,他们就可以这样做。但是,当他们不被要求这样做时,他们就会滥用权力并得到适当的制裁(直至并包括失去工作)。
这意味着您可能不希望跟踪谁访问记录状态代码和全名的状态表(以及有关状态的各种其他信息)。关于该列表没有任何保密 - 谁阅读它并不重要。当然,几乎没有人应该写信给它;状态列表不会经常更改 - 但可以通过从每个人撤消对表的更新和删除权限来处理。
OTOH,您可能确实希望记录谁访问病历(HIPAA)中的记录,或者修改会计系统(SOX)中的数据。您可能会或可能不需要担心谁会读取会计数据;很多可以通过基本权限来处理(会计人员有权限; IT人员没有)。但是,审计总是额外的防线。
请记住,如果从未查看审计记录,则无论如何都无济于事。通常,审计会降低系统速度(因为它在编写审计记录时会做更多的工作);在决定实施审计策略之前,了解它的减速程度非常重要。但是,有一些事情比应用程序更重要,其中一个是让自己和其他工作人员不在监狱。可能需要进行审计以确保发生这种情况。