Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 如何找出SQL Server上OLE提供程序权限的原因?_Sql Server 2008_Tsql_Oledb_Openrowset - Fatal编程技术网

Sql server 2008 如何找出SQL Server上OLE提供程序权限的原因?

Sql server 2008 如何找出SQL Server上OLE提供程序权限的原因?,sql-server-2008,tsql,oledb,openrowset,Sql Server 2008,Tsql,Oledb,Openrowset,我在64位Windows 7上安装了64位Office 2010。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

我在64位Windows 7上安装了64位Office 2010。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,我将得到如下错误:

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

但实际上,我的帐户也是一个管理员帐户,它位于本地管理员组和广告管理员组中

因为我需要在代码中像OpenRowSet一样运行T-SQL,所以不确定如何解决这个问题

看起来OpenRowSet仅适用于本地管理员运行MSSM


我试图从另一台计算机上运行MSSM,但得到了与上面相同的错误

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


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

尝试将Excel文件放在用户帐户可以访问的位置,而不需要管理员权限


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

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

解决方法:以sa身份登录解决此问题