Answers:
不幸的是,Microsoft Access没有触发器,甚至没有类似触发器的东西。在我的头顶上,您有几个令人讨厌的选择:
DateModified
和UserModified
列,并更新代码以包括这些值。不利的一面是,您只会知道最后一位更新记录的人,而不会查看历史记录。除了LittleBobbyTables方法之外,还有第三个选项,其中涉及_audit
为每个常规表创建一个表并编写整个lotta逻辑来支持它们,以便在发生更改时,可以在这些表中插入一条记录来这样做。(您已经知道何时保存/更新/删除记录,是吗?)
当然,这是“更大的数据库”的实现方式,其缺点是您必须手动执行许多逻辑来模拟服务器上的触发器类型的工作。
请注意,例如SQL Server Express是免费的,并且可能是Access的直接替代品。这将为您提供所需的审核功能。我认为“审计表”方法不可行。它假定连接到数据库的任何人都是通过具有该逻辑的“官方”客户端进行连接的。使用触发器,如果没有从任何随机客户端触发的触发器,就无法获取数据。
第三种选择是使用Wireshark或类似工具实际监视客户端和数据库之间的通信(我假设这实际上不是TDS,而是文件共享协议?),然后您可以确切地看到谁在何时何地从哪台计算机执行操作。不利的一面是,它需要大量存储空间,需要一些脚本来进行分析,并且可能会影响性能。