对ole db provider“microsoft.ace.oledb.12.0”的临时访问被拒绝。您必须通过链接服务器访问此提供程序

问题描述 投票:0回答:1

尝试在sql server中导入excel文件时。发生了上述错误。

sql-server-2017
1个回答
0
投票

转到“链接服务器”>“提供程序”,然后在OPENROWSET查询中双击您正在使用的提供程序,并检查是否启用“禁止访问权限”,如下所示。

enter image description here

您还可以在HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ INSTANCE NAME \ PROVIDERS \ SQLNCLI10下的注册表中找到此选项的值。运行regedit并转到上面的路径并找到“DisallowAdHocAccess”,如下所示。

enter image description here

我们可以从SSMS提供程序属性中禁用“禁止adhoc访问”,但它会删除注册表中的条目而不是将值更改为零,并且我们仍然获得对OLE DB提供程序的临时访问权限已被拒绝错误。

需要做的是,此注册表项需要从一个更改为零,以便为非sysadmin登录工作。因此,双击该条目并将值更改为零,然后保存记录。

即使禁用“Disallow adhoc access”,我们也需要检查“DisallowAdHocAccess”的注册表项。如果缺少该条目,则从SSMS中的提供程序属性启用该选项,然后通过将注册表中的值更改为零来禁用该选项。

© www.soinside.com 2019 - 2024. All rights reserved.