摘要

从 2021 年 5 月 11 Windows 和 Microsoft Office 更新开始,已添加使您的应用程序更安全的选项,以允许您在查询执行中禁用远程引用。

从 2021 年 10 月 12 Windows 开始,当应用程序尝试通过 SQL 查询打开外部数据库时,会添加一个选项来记录 Windows 事件。

当允许非特权用户使用 Jet Red 数据库引擎 或 Access Connectivity Engine (ACE) 运行自定义 SQL 查询时,可能需要这样做。

默认情况下,不会通过安装这些更新来更改访问 Jet 或 ACE。 

更多信息

访问远程数据库

如果您禁用使用 Jet Red Database Engine 或 Access Connectivity Engine (ACE) 访问远程数据库,则在运行 SQL 查询时,可能会收到如下所示的错误消息:

  • Microsoft Access: 如果用户在 Access 中执行查询,则会显示以下错误消息:

错误消息对话框

错误消息文本

此类对象不支持操作

Microsoft Access

此类对象不支持操作。

  • Microsoft Access: 如果用户执行运行查询的代码,则将显示运行时错误 3251,除非该错误消息在代码中得到处理:

错误消息对话框

错误消息文本

运行时错误 3251

Microsoft Visual Basic for Applications

运行时错误 ‘5941’

此类对象不支持操作。

警告: 如果在禁用以下注册表值后选择重新启用它们,则可能导致您的设备容易受到恶意用户或恶意软件的攻击。 不建议在禁用这些注册表值后重新启用它们。 然而,此信息仅供参考,你应自行决定是否选择实施此解决方法。 使用此方法需要您自担风险。

警告: 使用注册表编辑器或其他方法修改注册表不当可能会出现严重问题。 这些问题可能需要您重新安装操作系统。 Microsoft 不能保证可解决这些问题。 请自行承担修改注册表的风险。

审核远程数据库访问尝试

注意: 审核目前仅适用于 Jet Red 数据库引擎。

审核将添加到事件查看器中,该查看器Windows"应用程序和服务日志'\Microsoft\Windows\JetRed"下记录一个事件。

默认情况下,审核通过新的 DWORD AllowQueryRemoteTables_Audit启用和控制, 其中1 启用审核 ,0 禁用审核。

如果   启用此功能,则Windows"级别"为"信息","消息"为"尝试打开外部数据库"。

如果禁用此功能,则"级别"为"错误","消息"为"已阻止外部数据库打开尝试"。

事件的 "详细信息"选项卡将同时包含外部数据库的路径和可执行文件,如以下示例所示:

  • EventData 数据库路径:C:\PathToMyDb\myDatabase.mdb Executable:C:\PathtoMyApplication\myApplication.exe

Jet Red Database Engine

若要禁用使用 Jet Red Database Engine 访问远程数据库,请向注册表添加以下内容:

对于基于 x64 的设备:

  • 注册表位置: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Jet\4.0\EnginesDWORD 名称:AllowQueryRemoteTables值数据:0

对于基于 x86 的设备:

  • 注册表位置: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\EnginesDWORD 名称:AllowQueryRemoteTables值数据:0

备注 若要重新启用 Jet Red Database Engine 访问远程数据库,将值数据更改为 1

若要在 Jet Red 数据库引擎尝试访问远程数据库时禁用审核,AllowQueryRemoteTables_Audit DWORD添加到注册表:

对于基于 x64 的设备:

  • 注册表位置: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Jet\4.0\EnginesDWORD 名称:AllowQueryRemoteTables_Audit值数据:0

对于基于 x86 的设备:

  • 注册表位置: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\EnginesDWORD 名称:AllowQueryRemoteTables_Audit值数据:0

备注 若要重新启用 Jet Red 数据库引擎审核对远程数据库的访问尝试,将"值数据"更改为1。

Access Connectivity Engine (ACE)

若要禁用使用 ACE (ACE) 访问远程数据库,请向注册表添加以下 DWord 和值,如下表所示:

  • DWORD 名称: AllowQueryRemoteTables

  • 值数据:0

安装类型

Office 版本

OS 位度

Office位度

注册表路径

C2R

365 / 2019 / 2016

x64

x64

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ ClickToRun\REGISTRY\MACHINE\Software\Microsoft\ Office\16.0\Access Connectivity Engine\Engine

C2R

365 / 2019 / 2016

x86

x86

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ ClickToRun\REGISTRY\MACHINE\Software\Microsoft\Office\ 16.0\Access 连接引擎\引擎

C2R

365 / 2019 / 2016

x64

x86

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ ClickToRun\REGISTRY\MACHINE\Software\Wow6432Node\ Microsoft\Office\16.0\Access Connectivity Engine\Engine

C2R

2013

x64

x64

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ ClickToRun\REGISTRY\MACHINE\Software\Microsoft\Office\ 15.0\Access 连接引擎\引擎

C2R

2013

x86

x86

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ ClickToRun\REGISTRY\MACHINE\Software\Microsoft\Office\ 15.0\Access 连接引擎\引擎

C2R

2013

x64

x86

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ ClickToRun\REGISTRY\MACHINE\Software\Wow6432Node\ Microsoft\Office\15.0\Access Connectivity Engine\Engine

MSI

2016

x64

x64

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\16.0\ AccessConnectivity Engine\Engine

MSI

2016

x86

x86

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\16.0\ AccessConnectivity Engine\Engine

MSI

2016

x64

x86

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ Microsoft\Office\16.0\Access Connectivity Engine\Engine

MSI

2013

x64

x64

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\15.0\ AccessConnectivity Engine\Engine

MSI

2013

x86

x86

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\15.0\ AccessConnectivity Engine\Engine

MSI

2013

x64

x86

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ Microsoft\Office\15.0\Access Connectivity Engine\Engine

备注 若要重新启用访问 Access Connectivity Engine (ACE) 访问远程数据库,将值数据更改为 1

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。