【问题标题】:Who's linking to my MS Access tables?谁链接到我的 MS Access 表?
【发布时间】:2013-10-23 19:11:22
【问题描述】:

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

是否要开始记录间接访问此数据库的每个人的日志?

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

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

有什么建议吗?

【问题讨论】:

    标签: vba ms-access


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 这太棒了!我已经让它工作了,但我怎样才能更方便地访问事件日志?目前我必须打开每条记录,看看谁访问了数据库。我有一个 XML 查询来创建一个自定义视图,仅用于显示与该特定数据库相关的事件条目,但有没有一种方法可以比单独打开每个更方便地查看它们?我尝试将视图导出为 PDF/CSV,但它只导出摘要 - 我需要的信息在“详细视图”中..
    猜你喜欢
    • 1970-01-01
    • 2010-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多