如何找出SQL Server上的OLE提供程序权限的原因?
问题描述:
我在Windows 7 64位上安装了Office 2010 64位。在Windows 7上也安装了SQL Server 2008。如何找出SQL Server上的OLE提供程序权限的原因?
然后,我尝试使用Microsoft.ACE.OLEDB.12.0
来使用T-SQL从excel文件中访问数据。
我尝试T-SQL在SQL Server管理工作室以下类型的查询:
SELECT *
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=C:\Temp\book1.xlsx;', 'SELECT * FROM [Sheet1$]')
如果我启动SQL Server管理工作室“以管理员身份运行”,这是好的。我可以访问/从Excel文件插入数据。
如果我直接启动管理工作室(与我的AD帐户),我会得到错误,如:
OLE DB提供程序“Microsoft.ACE.OLEDB.12.0”链接服务器“(空)”返回消息“未指定的错误”。
Msg 7303,Level 16,State 1,Line 1
无法初始化链接服务器“(null)”的OLE DB提供程序“Microsoft.ACE.OLEDB.12.0”的数据源对象。
但实际上,我的帐户也是管理员帐户(它在本地管理员组和AD管理员组中)。
因为我需要在代码中运行T-SQL,如OpenRowSet
,不确定如何解决此问题。
看起来像这种情况下的OpenRowSet只有本地管理员才能运行MSSM。
我尝试从另一台计算机运行MSSM,并得到与上面相同的错误。
答
想象一下:login as sa解决了这个问题。
答
尝试将您的Excel文件放在您的用户帐户可以访问的位置,而无需管理员权限。
您的用户文件夹,例如将是一个更好的选择。 Windows在没有管理员权限的情况下运行时将限制对这些类型文件夹的访问
Thanks.Have tried。得到相同的错误信息。 – KentZhou 2013-03-25 15:44:09