You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置Microsoft.ACE.OLEDB.12.0后出现SQL错误17053如何解决

问题原因

开启ACE OLEDB驱动的AllowInProcess参数后,SQL Server服务运行账户缺少对应注册表项的读写权限,触发访问拒绝报错。

修复操作步骤

1. 确认SQL Server服务运行账户

  • 按下Win+R组合键,输入services.msc回车打开服务控制台
  • 找到名称为SQL Server (你的实例名)的服务,右键选择「属性」,切换到「登录」标签页,记下当前使用的账户名(默认实例的服务名通常为SQL Server (MSSQLSERVER),默认账户可能是NT Service\MSSQLSERVER、本地系统账户或自定义域账户)

2. 修改注册表项权限

  • 按下Win+R组合键,输入regedit回车打开注册表编辑器
  • 导航到对应注册表路径:
    • 64位系统安装64位ACE驱动:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL<版本号>.<实例名>\Providers\Microsoft.ACE.OLEDB.12.0
    • 64位系统安装32位ACE驱动:HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft SQL Server\MSSQL<版本号>.<实例名>\Providers\Microsoft.ACE.OLEDB.12.0
      注:路径中<版本号>对应SQL Server大版本,例如SQL Server 2019对应15,SQL Server 2016对应13;默认实例的<实例名>为MSSQLSERVER
  • 右键点击Microsoft.ACE.OLEDB.12.0注册表项,选择「权限」
  • 点击「添加」,输入第一步查到的SQL Server服务账户名,点击「检查名称」确认无误后点击确定
  • 选中刚添加的账户,在权限列表中勾选「完全控制」和「读取」的允许复选框,点击确定保存配置
  • 若修改后仍报错,可以临时添加Everyone账户并授予读取权限验证效果,生产环境验证通过后可回收该权限

3. 重启SQL Server服务

回到服务控制台,右键SQL Server (你的实例名)选择「重启」,等待服务启动完成后查看SQL Server错误日志,报错将不再生成。

可选回退方案

如果不需要使用ACE OLEDB的进程内运行特性,可以直接回滚之前的配置,报错也会消失,执行以下SQL命令后重启SQL Server服务即可:

EXEC sp_MSSet_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 0
EXEC sp_MSSet_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 0

内容的提问来源于stack exchange,提问作者xl0911

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 15:15:00