我们有一个MS数据库(.mdb文件),网络上很多人都可以访问它。但是,这个文件将很快被移动,我们不知道在移动发生之前我们需要通知谁。
无论如何都要开始记录间接访问此数据库的每个人的日志吗?
我们有一个VBA脚本在直接打开数据库时触发,以记录重要信息,以便我们可以联系他们,但我们发现大多数用户实际上没有打开数据库,而是使用本地数据库他们自己的主要数据库链接。
大多数数据库都是使用.acccdb扩展名的2007/2010。只有这个“主数据库”使用旧的.mdb扩展名。
有什么建议吗?
答案 0 :(得分:4)
使用文件系统提供的数据库原语及其网络重定向器访问数据库。因此,文件系统和网络重定向器始终知道谁正在访问该文件(实际上,谁正在访问文件中的物理记录)。
记录此问题的简便方法是使用文件服务器上Windows事件日志系统中的安全日志。为此,请选择数据库文件,右键单击,然后选择“属性”,“安全性”,“高级”,然后选择“审核”选项卡。将“everyone”添加到审核列表中。我也会添加“匿名”,但如果你得到任何“匿名”访问权限,你就会遇到更大的问题。
您还需要通过组策略(在域系统上)或本地策略(在没有组策略的系统/网络/工作组中的文件服务器上)启用“对象”的审核日志记录。你想要的是Windows设置>安全设置>地方政策>审计政策>审核对象访问
您需要启用的将获取此信息的日志是存储数据库文件的登录服务器。它是在文件末端(这是一个地方)的记录访问,而不是在请求端(可以是任何地方)。
编辑> 要从日志中查询和导出,如果您在其中一台服务器上有副本,则可以使用“eventquery.vbs”。它在WMI对象上使用execquery。如果您还没有eventquery.vbs,您可能需要寻找PowerShell替代方案。