从 SQL Server 查询“Microsoft.ACE.OLEDB.12.0”提供程序时出错

Posted

技术标签:

【中文标题】从 SQL Server 查询“Microsoft.ACE.OLEDB.12.0”提供程序时出错【英文标题】:Error querying "Microsoft.ACE.OLEDB.12.0" provider from SQL Server 【发布时间】:2011-11-16 08:37:28 【问题描述】:

这不是一个问题,但这篇文章可能对社区有用,因为我在 Internet 上找不到答案。

测试于

Windows 2008 R2 x64 和 Windows 2003 x64 SQL Server 2008 SP3 x64 提供者 Microsoft.ACE.OLEDB.12.0 x64

SQL Server 在不是本地计算机管理员的域帐户下运行。 SQL Server 连接身份验证是 Windows。

问题是:

在使用此提供程序创建和使用链接服务器或临时查询时,您可能会收到如下错误:

链接服务器“xxx”的 OLE DB 提供程序“MSDASQL”返回消息“[Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed”

链接服务器“xxx”的 OLE DB 提供程序“MSDASQL”返回消息“[Microsoft][ODBC dBASE Driver] 您的网络访问被中断。要继续,请关闭数据库,然后再次打开它。

无法为链接服务器“xxx”初始化 OLE DB 提供程序“MSDASQL”的数据源对象

找不到可安装的 ISAM

链接服务器“xxx”的 OLE DB 提供程序“MSDASQL”返回消息“[Microsoft][ODBC dBASE 驱动程序]一般错误无法打开注册表项临时(易失)Ace DSN 进程 0x16f4 线程 0x2728 DBC 0x1ce64ae8 Xbase'

原因是提供程序使用用户连接的凭据在 SQL Server 的域帐户的临时文件夹中创建了一个临时文件。普通用户没有这样的权限。

【问题讨论】:

Sql server 在域账户下运行,该域账户不用于在该机器上登录。请澄清这一点。 【参考方案1】:

解决办法是 授予 Sql Server 域帐户临时文件夹上的 sql server 用户“修改”权限。 这个文件夹通常是

Windows 2003:“c:\Documents 和 Settings\sql_server_account_name\Local Settings\Temp\" Windows 2008:“C:\Users\sql_server_account_name\AppData\Local\Temp\”

【讨论】:

我移动了 Boogier 最初在他的问题中发布的解决方案。制作 CW,所以我不会得到不当的代表。

以上是关于从 SQL Server 查询“Microsoft.ACE.OLEDB.12.0”提供程序时出错的主要内容,如果未能解决你的问题,请参考以下文章

使用查询从 Microsoft SQL Server 导出数据到目标数据

《Microsoft SQL Server入门教程》第04篇 简单查询

我可以从 Microsoft Access 调用 SQL Server 的用户定义函数吗

Microsoft SQL Server 2008 中 JOIN 与 APPLY 的相对效率

Microsoft SQL Server查询分析器不能与本机连接?

是否可以在 Microsoft SQL Server 上为 SQL 查询设置超时?