简单的sql数据审计日志表



我需要记录表中的所有更改。我已经在SO中阅读了许多关于数据审计日志的文章。对我来说,一切似乎都很复杂。

我计划在更新和删除数据之前保留表的所有副本。这是个好主意吗?

如果我们只谈论一个表,那么是的。如果有几张桌子,那么也许。如果有很多表需要审计,那么没有。

原因是,您必须维护的重复表越多,它就变得越复杂。此外,从许多表中进行报告可能是一项艰巨的任务。

这里有一些其他的想法:

两个表的存储设计:想法是将事务的详细信息(用户,主机,事务时间,表名,数据库名等)保存在一个表中,而将数据更改(旧值,键等)保存在第二个表中

第三方工具:有几个工具可以提供不同级别的审计。ApexSQL Audit是一个基于触发器的审计工具,ApexSQL Log更高级,可以审计权限和模式更改,ideera的Compliance manager是最先进的,甚至可以捕获选择语句。

更改数据捕获:这是内置在SQL Server 2008+,但仅在企业版。

要了解数据库中每个表所做的更改,我认为您应该使用SQL Server的LepideAuditor。通过这个工具,您可以跟踪有关创建,更改,删除活动所做的数据库和SQL Server对象的变化。它提供了一个详细的视图,说明在这些对象上进行的所有操作的人员、内容、时间和地点。

如果您打算保留表的副本,我建议您查看数据库快照。它将帮助您创建数据库的只读副本,您可以轻松地恢复和比较您的表与快照。

关于SQL审计,一开始创建它有点困难,但是一旦你有了一个工作,第二个审计将花费几分钟来实现。

SQL审计是少数表的好选择。如果您有多个,请使用更改数据捕获或第三方工具,如leide或apexsql触发器。

相关内容

  • 没有找到相关文章

最新更新