我正在考虑更改我们的SQL Server 2005数据库的审核流程,我遇到了SQL Server 2008中的变更数据捕获。
这看起来是个好主意,我很想尝试一下,但在此之前,是否有人在商业环境中使用过它,您的想法是什么?
我注意到,当我在MS帮助中读到CDC时,它说审计数据通常会保存几天。这在这里是不可能的,我想无限期地保存数据,有人知道这种方法的问题吗?
如果由于我不知道的原因,这不是一个好的解决方案,您是否有其他用于审计数据更改的解决方案。我热衷于使用一个可以在我想要的任何表上实现的系统。
我的基本要求是:“之前、之后、谁、什么时候”的信息有任何变化。
我有两个实体列表:一个是DB中行的当前状态,另一个是对列表所做的更改。如何审核已删除、添加的行以及对实体所做的更改?所有实体都使用我的审计表。
看起来非常合适,直到您注意到这样一句话:回调方法不能调用EntityManager或查询方法!由于这个限制,我可以收集审计,但不能将它们保存到数据库中:(
我的解决方案是一个发现审计的复杂算法。
If the entity is in the change list and has no key, it's an add
If the entity is in the db but not the changes list, it's
我是春天的新人。我想将数据插入到AUDIT表中。在USER和AUDIT表之间存在一对二多的关系。
对于每次登录和注销,都应该将数据插入到AUDIT表中。我该怎么做呢?
用户实体:
@Table(name="USER")
public class User {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="USERID")
private Long id;
private String username;
private Stri