【问题标题】:Provider 'MICROSOFT.ACE.OLEDB.12.0' has been denied when executing stored procedure from ASPX page从 ASPX 页面执行存储过程时,提供程序“MICROSOFT.ACE.OLEDB.12.0”被拒绝
【发布时间】:2016-01-11 17:42:50
【问题描述】:

我一直在四处寻找解决方法,但找不到。

基本上,我在 sql server 中设置了一个将 excel 文件读入表的存储过程。我设法让它在 SQL Server Management Studio 中工作。但是当我尝试在网页中执行它时,我得到了错误:

已获得对 OLE DB 提供程序“MICROSOFT.ACE.OLEDB.12.0”的临时访问权限 否认。您必须通过链接服务器访问此提供程序。

我尝试过的方法包括运行以下命令:

sp_configure 'Show Advanced Options', 1;
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;

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

我还尝试将 SQL Server 的临时文件夹的访问权限授予我的 SQL 用户。

我已经在圈子里跑了一段时间......这是在管理工作室中运行良好的相关 SQL 代码:

set @q = 'INSERT INTO #RDV_BUFFER (noDossier,RDVDate,Facturation,debut,fin,debutreel,finreel,MinutesParUnites) SELECT nodos, daterdv, montfact, heuredebut, heurefin,heureassis,heureleve,horstep FROM OPENROWSET(''MICROSOFT.ACE.OLEDB.12.0'',''Excel 8.0; Database=C:\inetpub\wwwroot\ProDentaireElite\XLS_Root\' + @URL + '; HDR=YES; IMEX=1'', ''SELECT * FROM [' + @Sheetname + '$]'')'

EXEC sp_executesql @q

感谢所有的大师。也许您的知识可以提供帮助。

【问题讨论】:

  • 附加信息:我正在运行 Windows 10,安装了 Office 2010 (x64),sql server 也是 x64 和版本 12
  • 以下关于 DBA 的帖子建议您还需要更改注册表设置:dba.stackexchange.com/questions/61739/…
  • 谢谢!我在注册表中手动添加了密钥,现在出现新错误:无法初始化 OLE DB 提供程序“MICROSOFT.ACE.OLEDB.12.0”的数据源对象

标签: asp.net sql-server excel import


【解决方案1】:

好的,我找到了,我需要 2 个“临时”文件夹才能访问我的 SQL 用户。一个位于 windows microsoft sql server 文件夹中,另一个位于我自己的用户中。确保将它们设置为“完全控制”,否则它将不起作用。

【讨论】:

    猜你喜欢
    • 2010-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-03
    • 1970-01-01
    相关资源
    最近更新 更多