我的公司正在从分布式 Access 数据库模型转变为使用集中式 SQL 数据库。数据表的设计使得所有表都具有修改日期。在讨论中,有人建议,由于我们将在每个表上创建一个触发器来处理修改日期,也许我们应该让触发器也将一些信息记录到审计表中。
这是设置审计的最佳方法,以便我们可以跟踪谁在更改信息,还是有更好的方法?欢迎提供有关该主题的文章的链接。
对于审计,我正在考虑捕获表名、列名、修改日期、行 ID 和进行更改的人的用户名。是否有任何我没有想到应该捕捉的信息可以帮助我避免未来的跌倒?
不要费心在每个字段的基础上跟踪审计数据。拥有与主表具有相同结构的审计表以及在表上跟踪的时间戳和用户信息要容易得多。
这种架构有几个优点:
审核信息至少应包括:创建/更改记录的用户、创建/更改的日期/时间、更改的性质(插入、更新、删除)。如果您可以选择这样做,您可能希望使用逻辑删除(即“已删除”标志)。否则,您需要从会话中捕获用户和日期/时间并将它们放在删除记录中,可能与记录的最后状态一起。如果这在连接中不可用(通常在 N 层应用程序中,用户不是在数据库级别被模拟),那么您需要找到其他方法来获取它。
| 归档时间: |
|
| 查看次数: |
895 次 |
| 最近记录: |