【问题标题】:Cannot initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server无法为链接服务器初始化 OLE DB 提供程序“Microsoft.ACE.OLEDB.12.0”的数据源对象
【发布时间】:2013-03-15 20:37:54
【问题描述】:

我正在尝试建立一个从SQL Server 2008 R2Access database 的链接服务器。 Access database 不受密码保护。正如我在其他帖子 (specifically this one) 中看到的,这通常是由于当前用户无法访问 NetworkService 文件夹中的 Temp 文件夹。由于我们在Windows Server 2008 中运行它,因此目录结构与大多数人所逃避的完全不同。我已允许访问"root:\Documents and Settings\" directory 中的每个临时文件夹,但无济于事。

这是我用来添加链接服务器的过程:

EXEC sp_addlinkedserver 
@server = N'OS_Access', 
@provider = N'Microsoft.ACE.OLEDB.12.0', 
@srvproduct = N'',
@datasrc = N'C:\RTBData\Data\OS.mdb';
GO

它可以毫无问题地创建链接服务器,但我无法查看数据库的表/视图。同样,我的 ASP.NET 应用程序也无法访问它。

ACE and JET(64-bit)(通过安装 Office 数据连接组件)我都试过了,但它们都不起作用。我还尝试将带有"Dynamic Parameter""Allow InProcess" 的ACE 提供程序配置为true。

此外,我尝试通过在 SQL 配置管理器中的 "startup parameters" 字符串前面添加 "-g512;" 来增加 MSSQLSERVER services 的内存使用量,以排除内存问题。

如果有人能对此有所了解,那就太棒了!谢谢!

更新:我使用 sa 帐户登录 SQL,并且能够查看链接服务器。我当前的用户帐户在 SQL Server 中具有完全权限,因此我不确定帐户之间的区别是什么。也许我授予了错误的Temp 文件夹的权限,sa 帐户(内置)可以访问该文件夹。如果有人可以在这里为我指出正确的方向,那就太好了,我认为这也会帮助很多其他人。

【问题讨论】:

标签: sql sql-server sql-server-2008 linked-server


【解决方案1】:

我通过在控制面板中禁用 UAC 解决了这个问题。我不确定这会带来什么变化,但它可能对其他人有所帮助!

【讨论】:

    【解决方案2】:
    USE [master]
    GO
    EXEC sp_configure 'show advanced options', 1
    RECONFIGURE
    GO
    EXEC sp_configure 'ad hoc distributed queries', 1
    RECONFIGURE
    GO
    USE [master]
    GO
    EXEC master . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'AllowInProcess' , 1
    GO
    EXEC master . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'DynamicParameters' , 1
    GO
    SELECT *
    FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Name & Location of DB';;, [TableName])
    

    【讨论】:

      猜你喜欢
      • 2018-05-14
      • 2013-06-03
      • 1970-01-01
      • 1970-01-01
      • 2017-08-10
      • 2020-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多