大家好,您如何在数据访问层下的SubSonic上的所有对象/类上实现审计跟踪?
如果我想要的是,所有对象的所有更改都将记录在一个表/对象上。
public class AuditTrail
{
public int Id { get; set; }
public string SourceObjectName { get; set; }
public int RowPK { get; set; } // Id of the SourceObject
public string ChangeType {get; set;} // value such as "Add", "Update", "Delete"
public string RowCapture { get; set; } // Id="6" UserId="xxx3" SurName="NoBodyx" FirstName="no3" MiddleName="B." Email="x@x.x3" CreatedDate="8/6/2009 1:57:58 PM" CreatedBy="ca3" UpdatedDate="8/7/2009 5:58:37 AM" UpdatedBy="qqq" Name="no3 B. NoBodyx"
public CreatedDate {get; set;}
}
答案 0 :(得分:0)
我使用触发器直接在数据库中处理所有审计跟踪。当审计仅发生在来自代码的更改时,如果有人通过直接SQL查询或通过Management Studio获取数据,则无法获得任何跟踪。我还发现,基于触发器的设置比基于代码的设置表现更好,使事情变得更少。
我使用存储过程为每个表创建一个审计表并设置所有触发器。但是,如果需要,类似的设置可以指向单个审计表。
审核表存在后,您可以通过Subsonic从中提取数据。