0

我们有一个 MS 数据库(.mdb 文件),网络上的许多人都频繁访问它。然而,这个文件很快就会被移动,我们不知道在移动发生之前我们需要通知谁。

无论如何要开始记录间接访问该数据库的每个人的日志吗?

我们有一个 VBA 脚本,当直接打开数据库时会触发以记录重要信息,因此我们可以联系他们,但我们发现大多数用户实际上并没有打开数据库,而是使用自己的本地数据库链接到主数据库。

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

有什么建议么?

4

1 回答 1

4

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

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

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

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

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

于 2013-10-18T05:50:20.867 回答