审核SQL Server数据更改

MrE*_*ndo 13 sql sql-server-2005 sql-server-2008

我正在考虑更改SQL Server 2005数据库的审核流程,我在SQL Server 2008中遇到了Change Data Capture.

这看起来是一个好主意,我很想尝试,但在我做之前,有人在商业环境中使用它,你有什么想法?

我注意到当我在MS帮助中阅读有关CDC时,它说审计数据通常会保留几天.这在这里是不可能的,我想无限期地保留数据,有没有人知道这种方法的问题?

如果由于我不知道的原因这不是一个好的解决方案,那么您是否有任何其他解决方案来审核数据更改.我渴望使用一个可以在我想要的任何桌子上全面实施的系统.

我是基本的:"之前,之后,谁,当,"信息的任何变化.

Jos*_*lio 9

在我看来,CDC应该只是达到目的的手段.我过去实施过审计跟踪解决方案,他们参与了触发器的使用.这对于高度事务性的数据库来说非常混乱和性能密集.

CDC为您提供的是能够在不使用触发器的情况下记录审计数据,但您仍需要一种方法将数据转换为永久表.这可以通过每个要审计的表的镜像表来完成,也可以通过单个表来跟踪所有表的所有更改(我已经完成了后者).

以下是一些链接,其中包含有关如何使用触发器执行操作的其他信息:
SQL Audit Trail
sql-server-history-table-populate-through-sp-or-trigger

这是一个使用LINQ:DoddleAudit的开源审计跟踪解决方案


小智 7

很晚但希望它对其他读者有用......

以下是几种不同的审计技巧及其优缺点.没有适合所有人的"正确"解决方案.这取决于要求和被审计的系统.

触发器

  • 优点:相对容易实现,审计内容具有很大的灵活性,以及​​如何通过完全控制来存储审计数据
  • 缺点:当你有很多表甚至更多的触发器时,它会变得混乱.除非有一些第三方工具可以提供帮助,否则维护工作会很重.此外,根据数据库,它可能会对性能产生影响.

CDC

  • 优点:非常容易实现,本机支持
  • 缺点:仅在企业版中可用,不是非常强大 - 如果您更改架构,您的数据将会丢失.我不建议将其用于长期审计跟踪

痕迹

  • 优点:对被审计的内容具有很大的灵活性.甚至可以审核选择语句.
  • 缺点:您需要创建一个单独的应用程序,以便解析跟踪文件并从中收集有用的信息.

阅读交易日志

  • 优点:您需要做的就是将数据库置于完全恢复模式,所有信息都将存储在事务日志中
  • 缺点:您需要第三方日志阅读器才能有效地阅读此内容

我使用过ApexSQL的几个审计工具,但也有来自Idera(合规经理)和Krell软件(全方位审计)的好工具

ApexSQL Audit - 基于触发器的审计工具.生成并管理审计触发器

ApexSQL日志 - 允许通过读取事务日志进行审核