对ole数据库提供程序'microsoft.ace.oledb.12.0'的临时访问已被拒绝。您必须通过链接服务器访问此提供程序

时间:2019-04-12 05:23:59

标签: sql-server-2017

当尝试在sql server中导入Excel文件时。发生以上错误。

1 个答案:

答案 0 :(得分: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提供程序属性中禁用“禁止临时访问”,但是它删除了注册表中的条目,而不是将值更改为零,并且仍然获得对OLE DB提供程序的临时访问已被拒绝错误。

需要做的是,此注册表项需要从1更改为零,以使其适用于非sysadmin登录名。因此,双击条目并将其值更改为零,然后保存记录。

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