2013-10-18 65 views
0

我们有一个MS数据库(.mdb文件),很多人在网络上访问过。但是,这个文件很快就会被移走,我们不知道在移动发生之前我们需要通知谁。谁链接到我的MS Access表?

有无论如何开始保持间接访问此数据库的每个人的日志?

我们已经有了一个VBA脚本,当直接打开数据库来记录重要信息时就会触发,所以我们可以联系他们,但我们发现大多数用户并没有真正打开数据库,而是使用本地他们自己的数据库链接到主数据库。

大多数数据库是2007/2010使用.acccdb扩展名。只有这个“主数据库”使用旧的.mdb扩展名。

有什么建议吗?

回答

4

使用文件系统提供的数据库原语访问数据库,它是网络重定向器。所以文件系统和网络重定向器总是知道谁在访问文件(实际上,谁在访问文件内的物理记录)。

一个简单的记录方法是在文件服务器的Windows事件日志系统中使用安全日志。为此,请选择数据库文件,右键单击并选择“属性”,“安全性”,“高级”,然后选择审核选项卡。将“everyone”添加到审计列表中。我也会添加“匿名”,但如果你有任何“匿名”访问,你就会遇到更大的问题。

您还需要通过组策略(在域系统上)或本地策略(在没有组策略的系统/网络/工作组中的文件服务器上)启用“对象”的审核日志记录。您需要的是Windows设置>安全设置>本地策略>审核策略>审核对象访问

您需要启用的日志(即将获取此信息)是存储数据库文件的服务器上的日志。它在文件结尾(这是一个地方)的日志访问不在请求端(可能在任何地方)。

编辑> 要从日志中查询和导出,可以使用“eventquery.vbs”,如果您在其中一台服务器上有副本。它在一个WMI对象上使用了execquery。如果您还没有获得eventquery.vbs,则可能需要查找PowerShell替代方案。

+0

这真棒!我有它的工作,但我怎样才能更方便地访问事件日志?目前我必须打开每条记录并查看谁访问了数据库。我有一个XML查询来创建一个自定义视图,只显示与此特定数据库相关的事件条目,但有没有一种方法可以更方便地查看它们,而不是单独打开每个条目?我试图将视图导出为PDF/CSV,但它只导出一个摘要 - 我需要的信息是在“详细视图”中。 – Chronix3