回答
如果我们只谈论一张桌子,那么是的。如果有几个表,那么也许。如果有很多表需要审计,那么不需要。
原因是您必须维护更多复制表的原因是它变得越复杂。此外,从许多表格报告可能变成一项艰巨的任务。
这里有一些其他的想法:
两个表的设计存储:做是为了保持有关交易的细节在一个表(用户,主机,交易时间,表名,数据库名称等),第二表中的数据更改(旧值,键等)
第三方工具:有几种工具可以提供不同级别的审计。 ApexSQL Audit是一个基于触发器的审计工具,ApexSQL Log更高级,可以审计权限和模式更改,Idera的Compliance manager是最先进的,甚至可以捕获select语句。
更改数据捕获:这是内置于SQL Server 2008+,但仅限于企业版本。
是的。它不是一张桌子。我计划使用触发器将更改和删除的数据(整行)存储到每个表的审计表中。所有的审计表都在同一个数据库中。如果我使用CDC,很容易就能显示一行数据的两个版本之间的变化报告?在我的方法中,很容易显示一行数据的两个版本之间的差异,因为整行可用... – zak
这将是非常简单的,因为内置了显示此信息的系统函数,您也可以使用CDC模式查询审计表。有关更多信息,请参见[this](https://www.simple-talk.com/sql/learn-sql-server/introduction-to-change-data-capture-(cdc)-in-sql-server-2008 /)。细节。 – Dwoolk
Renhold Software的[SQL Table Audit](https://renholdsoftware.com/SQLTableAudit)是另一个价格相对较低的第三方替代品。它通过生成触发器来工作。 – rpearsondev
为了解数据库中每个表中所做的更改,我相信您应该使用LepideAuditor for SQL Server。通过此工具,您可以跟踪有关在数据库和SQL Server对象上执行的创建,更改,删除活动的更改。 它详细介绍了在这些对象上进行的所有操作的人员,时间和地点。
如果您打算保留表格的副本,我建议您查看数据库快照。它将帮助您创建数据库的只读副本,并且可以轻松地还原表格并将其与快照进行比较。
关于SQL审计,开始时创建起来有点困难,但一旦您有一个工作,第二个审计将需要几分钟时间才能实施。
SQL Audit对于少数表格来说是一个不错的选择。如果您有多个,请使用更改数据捕获或第三方工具,如Lepide或apexsql触发器。
- 1. rails审计日志
- 2. Oracle审计日志
- 3. SQL审核日志运行总计
- 4. Docker的审计日志
- 5. SQL - 审计日志表设计 - 您更喜欢哪一个?
- 6. symfony1.4 propel1.5审计日志
- 7. 如何审计日志member.createuser
- 8. 用于审计日志记录的数据库设计
- 9. SharePoint MOSS中的审计日志记录
- 10. Symfony的审计日志,最佳实践
- 11. 审计与日志记录的区别?
- 12. 使用Spring AOP的审计日志
- 13. SQL日志数据库设计
- 14. 数据库中审计日志(踪迹)篡改
- 15. 简单的SQL故障转移计划?日志传送?镜像?
- 16. SQl服务器审计日志文件中的'语句'属性
- 17. Oracle系统日志审计与oracle vault
- 18. DynamoDB索引和审计日志
- 19. 审计日志记录插入
- 20. SharePoint 2013 - 访问资源审计日志
- 21. 审计日志Cassandra 2.2.8社区版
- 22. HDFS审计日志格式和说明
- 23. 为数据库设计审查创建ERD的简单方法
- 24. 直接“修改”数据的SQL审计
- 25. SQL Server 2008 R2 - 审计日志 - 理解层次结构
- 26. 如何在Sql Server中实现审计日志
- 27. 从SQL Server审计文件中清除日志
- 28. 阅读的Informix-SE审计跟踪日志表
- 29. Java审计表日志记录,等同于MySQL的CONTEXT_INFO
- 30. 审计日志记录跳过表的ID复合主键
除了您或您的用户/客户,没有人能说出什么是“好主意”。这里的业务要求是什么?如果你在一个合法控制的环境中工作,在这个环境中你需要对每一个改变进行完整的审计跟踪,那么也许你需要为每张桌子设置它,即使它工作更多。但也许这个要求只是跟踪一个或两个特定的表格,而且你可以做一些简单的事情。如果你可以让你的问题更加精确和技术性,你可能会得到更好的回应。 – Pondlife