[英]SQL Server 2008 change data capture vs triggers in audit trail
我们在 web 应用程序上使用触发器实现了审计跟踪。 这些触发日志字段级别的更新。 因此,在一个表中,如果您更改了 5 个列值,我们在审计跟踪中有 5 个记录,每个列都有旧值和新值。
最近我们已经升级到 SQL Server 2008。我一直在考虑使用新的更改数据捕获功能,因为它提供了非常简洁的行级更新,而且工作量非常小,而且非常容易实现。 只是想从一直在使用更改跟踪的人那里获得一些意见,以获得任何警告或任何其他现实世界中与此相关的有用信息。
任何意见将是有益的。
编辑:- http://tec.net.microsoft.com/en-us/magazine/2008.11.sql.aspx?pr=blog
我在我的 WPF 应用程序中使用 CDC。 效果很好,但我发现了三个问题:
MERGE
语句向历史表添加记录)。 因为我发现记录只在更改表中停留大约 2-3 天。 不要忘记备份cdc.lsn_time_mapping表。不管怎样,CDC 是一个非常有用的机制,可以帮助我跟踪数据库中的所有更改。
在SQL Server中一共找到四种解决方案,具体如下:
SQL 服务器更改跟踪 [CTC]
优点
缺点
SQL 服务器更改数据捕获 [CDC]
优点
缺点
不会捕获有关进行更改的用户的信息,因为您可能需要在每个需要跟踪的表中创建一些额外的列,这些列如下所示:
CreatedAt datetime default (getdate()), CreatedBy nvarchar(100) default (suser_sname()), UpdatedAt datetime default (getdate()), UpdatedBy nvarchar(100) default (suser_sname())
带触发器的审计跟踪 [通用解决方案]
优点
缺点
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.