【问题标题】:How to find out the reason for OLE provider permission on SQL Server?如何找出 SQL Server 上 OLE 提供程序权限的原因?
【发布时间】:2013-03-15 02:24:25
【问题描述】:

我在 Windows 7 64 位上安装了 Office 2010 64 位。 Windows 7 上也安装了 SQL Server 2008。

然后我尝试使用Microsoft.ACE.OLEDB.12.0 通过 T-SQL 访问 excel 文件中的数据。

我在 SQL Server Mgmt Studio 中使用以下类型的查询尝试 T-SQL:

SELECT *
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=C:\Temp\book1.xlsx;', 'SELECT * FROM [Sheet1$]')

如果我使用“以管理员身份运行”启动 SQL Server Mgmt Studio,那就没问题了。我可以从/向 Excel 文件访问/插入数据。

如果我直接启动 Mgmt Studio(使用我的 AD 帐户),我会收到如下错误:

链接服务器“(null)”的 OLE DB 提供程序“Microsoft.ACE.OLEDB.12.0”返回消息“未指定的错误”。
消息 7303,第 16 级,状态 1,第 1 行
无法为链接服务器“(null)”初始化 OLE DB 提供程序“Microsoft.ACE.OLEDB.12.0”的数据源对象。

但实际上,我的帐户也是管理员帐户(它在本地管理员组和 AD 管理员组中)。

因为我需要在代码中运行像OpenRowSet 这样的T-SQL,不知道如何解决这个问题。

在这种情况下看起来像 OpenRowSet,只有本地管理员可以运行 MSSM。

我尝试从另一台计算机运行 MSSM,并得到与上述相同的错误。

【问题讨论】:

    标签: sql-server-2008 tsql oledb openrowset


    【解决方案1】:

    想办法:以 sa 身份登录解决此问题。

    【讨论】:

      【解决方案2】:

      尝试将您的 Excel 文件放在您的用户帐户无需管理员权限即可访问的位置。

      例如,您的用户文件夹将是更好的选择。在没有管理员权限的情况下运行时,Windows 将限制对这些类型的文件夹的访问。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-07
        • 2016-11-03
        • 2011-03-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多