从 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 x64SQL 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 的相对效率