【发布时间】:2009-11-25 16:27:38
【问题描述】:
我被要求创建一个简单的 DataGrid 样式的应用程序来编辑数据库的单个表,这很容易。但部分请求是创建对所做更改、进行更改的人员以及日期/时间的审计跟踪。
你会怎么解决这种事情?
(我将在 VS2008 中使用 C#、连接到 SQL Server 2005 的 ADO.NET、WPF 和 Xceed 的 DataGrid,如果有什么不同的话。)
【问题讨论】:
-
您要审核对内容或表结构本身的更改吗?我怀疑您的意思是内容而不是架构,但是“编辑数据库的单个表”这句话有点可疑。架构更改也可以通过触发器进行审计 FYI ;)
-
所需审核的粒度是多少?您可以在元组(行)级别(即某些属性已更改,但用户对细节不感兴趣)或行 AND 属性(列)级别(即用户对每个属性更改感兴趣)执行此操作。它们意味着不同的架构设计。
-
此外,即使您确信您的程序是唯一访问该表的程序,也要假设否则,否则未来的需求变化会抓住您。
-
啊,是的……好问题。出于我的目的,我只需要保留对低流量数据库中几个特定表的更改的历史记录(配置值更改、日期/时间和用户名)。如果更新更频繁或需要审核架构更改等,显然会更复杂。
标签: sql-server tsql ado.net triggers