我需要记录表中的所有更改。我在数据审计日志中经历了很多关于SO的文章。对我来说似乎都很复杂。
我计划在更新和删除数据之前保留表的副本。这是个好主意吗?
答案 0 :(得分:1)
如果我们只讨论一张桌子,那么是的。如果有几张桌子那么可能。如果有很多表需要审核,那么没有。
原因是你需要维护的表越多,它就越复杂。此外,许多表格的报告可能是一项艰巨的任务。
以下是其他一些想法:
存储的两个表设计:想法是在一个表(用户,主机,事务时间,表名,数据库名等)和第二个表中的数据更改中保留有关事务的详细信息(旧的价值观,钥匙等)
第三方工具:有几种工具可以在不同级别提供审核。 ApexSQL Audit是基于触发器的审核工具,ApexSQL Log更高级,可以审核权限和架构更改,Idera的Compliance manager是最先进的,甚至可以捕获select语句。
更改数据捕获:这内置于SQL Server 2008+中,但仅限于企业版。
答案 1 :(得分:0)
为了了解数据库中每个表中所做的更改,我相信您应该为LepideAuditor for SQL Server。通过此工具,您可以跟踪有关在数据库和SQL Server对象上完成的创建,更改,删除活动的更改。 它详细说明了对这些对象进行的所有操作的人员,内容,时间和地点。
答案 2 :(得分:0)
如果您打算保留表的副本,我建议您查看数据库快照。它将帮助您创建数据库的只读副本,并且可以轻松地将表恢复和与快照进行比较。
关于SQL审计,在开始时创建有点困难,但是一旦有了工作,第二次审计将需要几分钟才能实现。
SQL Audit是少数几个表的不错选择。如果您有多个,请使用更改数据捕获或第三方工具,如Lepide或apexsql触发器。