【发布时间】:2013-04-07 06:28:27
【问题描述】:
我有一个 .net 应用程序,它主要使用 EF 以及 SQL Server 2008,但有几个客户使用 2005。数据库中有几百个表。我需要审核这些表的选择以记录所有数据插入/更新/删除。我正在考虑拥有这些表的副本以记录所有更改以及日期时间和用户名,然后在实际表上设置触发器以将数据更改插入相关审计表。这是解决这个问题的最好方法吗?触发器是最好的方法还是我应该使用 EF?我本来想只拥有一张审计表,但我认为它很快就会失控。
【问题讨论】:
-
您是否考虑过使用 SQL Server Profiler 来记录对这些表的所有操作?
-
请注意:SQL 服务器分析器旨在分析问题,而不是用作审计工具。尽管它给服务器带来了很大的负载,但实际上很难将结果用作任何审计的可靠基础
-
将其存储在单个审计表中意味着 a) 将所有审计信息存储为例如XML,这可能会限制您搜索审计的能力,或者 b) 许多实际上是匿名的列,例如
IntColumn1、IntColumn2等,其中插入了数据,但您现在需要知道从每个表到这些列的映射,或者 c) 包含来自所有审计表的所有可能列的超宽表.就个人而言,这些都没有那么吸引人。
标签: c# sql-server entity-framework auditing