摘要
从 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,除非该错误消息在代码中得到处理:
错误消息对话框 |
错误消息文本 |
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\Engines
DWORD 名称:AllowQueryRemoteTables 值数据:0
对于基于 x86 的设备:
-
注册表位置: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines
DWORD 名称:AllowQueryRemoteTables 值数据:0
备注 若要重新启用 Jet Red Database Engine 访问远程数据库,将值数据更改为 1。
若要在 Jet Red 数据库引擎尝试访问远程数据库时禁用审核,AllowQueryRemoteTables_Audit DWORD添加到注册表:
对于基于 x64 的设备:
-
注册表位置: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Jet\4.0\Engines
DWORD 名称:AllowQueryRemoteTables_Audit 值数据:0
对于基于 x86 的设备:
-
注册表位置: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines
DWORD 名称: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。