select * From OPENDATASOURCE('SQLOLEDB','Data Source=IP地址;User ID=数据库用户名;Password=数据库密码').数据库名称.dbo.表名
结果提示:
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:
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
使用完成后,关闭Ad Hoc Distributed Queries:
exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure
本文解决SQLServer因安全配置导致无法使用OpenRowset/OpenDatasource的问题,通过执行sp_configure命令来临时启用AdHocDistributedQueries组件,完成跨数据库查询,并提供关闭方法。
1844

被折叠的 条评论
为什么被折叠?



