MS Access数据库中的表的审计跟踪(.mdb)

时间:2013-12-06 13:26:20

标签: ms-access ms-access-2007 ms-access-2010

我有mdb格式的ms访问文件。我希望在一个表上启用审计跟踪。对于每次更改,我都需要在审计跟踪表中修改行详细信息。

这里的问题是,表没有使用表单来更新/插入/删除它有复合主键。如果我们使用.accdb格式(2010访问 - 启用数据宏),我们可以启用审计跟踪。 但我不想改变现有的文件格式。有没有办法做到这一点?请建议。

1 个答案:

答案 0 :(得分:4)

不,你不能单独使用Access来完成你所描述的内容。

如果您坚持保留.mdb文件格式,则无法使用数据宏,因此您可以通过表单后面的VBA代码写入审计表的唯一方法。直接对数据表进行的任何更改都不会被审核。

如果您将后端数据库转换为Access 2010 .accdb,那么您可以使用数据宏来更新审计表,但审计表不安全。用户需要对审计表的写访问权限,以便数据宏可以更新它。但是,如果他们可以通过数据宏间接写入间接审计表,他们也可以直接写入审计表 。恶意用户可以通过在更新数据表后更改审计表来绕过审计。 (并且,通过逻辑扩展,无法审核审计表的更改。)

一个可以想到的解决方法是将数据表保留在Access 2010中,并将审计表放在一个真正安全的位置,如SQL Server数据库。不幸的是,这不起作用,因为Data Macros无法更新链接表。

因此,为了获得可靠且有意义的审计功能,您必须将数据表移动到安全的后端,如SQL Server(或可能是MySQL,或任何其他选项),设置适当的权限数据和审计表,并使用类似触发器的机制来维护审计表。您可以继续使用Access作为前端接口(通过ODBC链接表到后端数据库),但安全和审计功能必须由后端处理,而不是由Access处理。