1

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

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

4

3 回答 3

2

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

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

这里有几个其他的想法:

用于存储的双表设计: 想法是在一张表中保留有关事务的详细信息(用户、主机、事务时间、表名、数据库名等),并在第二张表中保留数据更改(旧值、键等)

第三方工具:有几种工具可以提供不同级别的审计。ApexSQL Audit是一个基于触发器的审计工具,ApexSQL Log更高级,可以审计权限和架构更改,Idera 的Compliance manager是最高级的,甚至可以捕获 select 语句。

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

于 2013-05-17T07:25:56.523 回答
0

为了了解数据库中存在的每个表中所做的更改,我相信您应该选择 LepideAuditor for SQL Server。通过此工具,您可以跟踪有关数据库和 SQL Server 对象的创建、更改、删​​除活动的更改。它详细说明了对这些对象执行的所有操作的人员、内容、时间和地点。

于 2013-05-17T17:42:30.690 回答
0

如果您打算保留表的副本,我建议您查看数据库快照。它将帮助您创建数据库的只读副本,并且您可以轻松地还原表并将其与快照进行比较。

关于 SQL 审计,一开始创建有点困难,但是一旦你有一个工作,第二个审计将需要几分钟才能实现。

SQL 审计对于少数表来说是一个不错的选择。如果您有多个,请使用变更数据捕获或第三方工具,如 Lepide 或 apexsql 触发器。

于 2015-01-29T23:32:47.400 回答