解决SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT 'OpenRowset/OpenDatasource' 的访问

根据需要进行asp.net的数据导入导出,结果报以下错:

mark-1:

【报错】SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT 'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'。有关启用 'Ad Hoc Distributed Queries' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。

 

【解决方法】开启Ad Hoc Distributed Queries组件,在sql查询编辑器中执行如下语句:

1 --配置权限 
2 EXEC sp_configure 'show advanced options', 1; 
3 GO 
4 RECONFIGURE; 
5 GO 
6 EXEC sp_configure 'Ad Hoc Distributed Queries', 1; 
7 GO 
8 RECONFIGURE; 
9 GO 

执行结果:

 

关闭Ad Hoc Distributed Queries组件,在sql查询编辑器中执行如下语句:

1 exec sp_configure 'Ad Hoc Distributed Queries',0;
2 go
3 reconfigure;
4 go
5 exec sp_configure 'show advanced options',0;
6 go
7 reconfigure;
8 go

 mark-2:

【执行】

 

1 --将excel数据导入数据库
2 select * into sheet from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=c:\33.xlsx',sheet1$)

 

【报错】

1 链接服务器"(null)"的 OLE DB 访问接口 "MICROSOFT.JET.OLEDB.4.0" 返回了消息 "未指定的错误"。
2 消息 7303,级别 16,状态 1,第 13 无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "MICROSOFT.JET.OLEDB.4.0" 的数据源对象。

【百度的解决办法】

发现根本原因了:management studio--->服务器对象-->链接服务器-->Microsoft.Jet.OLEDB.4.0-->右键属性-->访问接口选项:全都不选or ACE的 那个
将SQL Server(MSSQLSERVER)和SQL Full-Filter Deamon Launcher(MSSQLSERVER)两个服务的登录身份改为LocalSystem (这里可以创建一个账号如:Admin ,然后指定账号用这个)

 

posted @ 2017-06-13 14:32  cat糯米团  阅读(1196)  评论(0编辑  收藏  举报