日期:2014-05-17  浏览次数:20687 次

链接服务器无法查询:默认设置 SQL Server 不允许远程连接这个事实可能会导致失败
A机器 安装 iis ,sql server 2005 express
B机器 安装 sql server 2005 ,已经打开了远程连接

A机器上的asp程序可以正常连接到 B 机器的sql server,
A机器上 sql server management studio 用链接服务器abc查询 B机器的sql server 2005时,

select * from abc.xx.dbo.tb;

有如下提示:

链接服务器"abc"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "登录超时已过期"。
链接服务器"abc"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "建立到服务器的连接时发生错误。连接到 SQL Server 2005 时,默认设置 SQL Server 不允许远程连接这个事实可能会导致失败。“

用openrowset也有类似提示,是什么原因?
远程连接 sql?server

------解决方案--------------------
应该是楼主的链接服务器没有建立好了
请在A机器上删除链接服务器后,在查询分析中执行下面语句:

EXEC sys.sp_addlinkedserver 
    @server = 'abc', -- sysname
    @srvproduct = N'', -- nvarchar(128)
    @provider = N'SQLNCLI10', -- nvarchar(128) --或用SQLOLEDB
    @datasrc = N'B机器的IP', -- nvarchar(4000)
    @location = N'', -- nvarchar(4000)
    @provstr = N'', -- nvarchar(4000)
    @catalog = NULL -- sysname
GO

EXEC sys.sp_addlinkedsrvlogin 
    @rmtsrvname = 'abc', -- sysname
    @useself = 'false', -- varchar(8)
    @locallogin = NULL, -- sysname
    @rmtuser = 'sa', -- sysname
    @rmtpassword = '123456' -- sysname

EXEC dbo.sp_serveroption 
    @server = N'abc',
    @optname = N'rpc out',
    @optvalue = N'true'
GO

EXEC sys.sp_remoteoption 
    @remoteserver = 'abc', -- sysname
    @optname = 'rpc', -- varchar(35)
    @optvalue = 'true' -- varchar(10)