尝试通过使用 TCP/IP 套接字连接到群集中的 SQL Server 命名实例时收到“SQL Server does not exist or access denied”(SQL Server 不存在,或者访问被拒绝)错误消息

本文介绍了在使用特定语法连接到SQLServer2000或2005命名实例时遇到的连接错误及其解决方案。错误主要发生在群集环境中,并且与客户端和服务器之间的IPSec策略配置有关。文章提供了两种变通方案,一种是硬编码TCP端口,另一种是硬编码命名管道。

症状

当您通过使用“servername/instancename”语法尝试连接到群集环境中的 Microsoft SQL Server 2005 或 Microsoft SQL Server 2000 命名实例时,收到以下错误消息:
[DBNETLIB][ConnectionOpen (Connect()).]SQL Server SQL Server 不存在,或者访问被拒绝。
出现以下情况时,可能会收到此错误消息:
SQL Server 2005 或 SQL Server 2000 安装在群集中。
您正在通过使用 TCP/IP 套接字连接到 SQL Server 命名实例。
客户端域上启用了 IPSec 策略。
服务器域上没有启用 IPSec 策略。

原因

此问题在连接的发现阶段出现。当源 IP 更改时,客户端上的 IPSec 策略会丢弃来自服务器的数据包。

替代方法

要变通解决此问题,必须硬编码 TCP 端口或 SQL Server 命名实例的命名管道。为此,请使用与以下某一内容类似的连接字符串:
[oledb]
; Hardcoded TCP OLE DB initstring
Provider=SQLOLEDB.1;
Integrated Security=SSPI;
Persist Security Info=False;
User ID=clientID;
Data Source=tcp:TcpIpAddress,port [oledb] ; Hardcoded Named Pipes OLE DB initstring Provider=SQLOLEDB.1;
Integrated Security=SSPI;
Persist Security Info=False;
User ID=clientID;
Data Source=np://ServerName/pipe/MSSQL$InstanceName/sql/query

状态

Microsoft 已经确认这是在“适用于”一节中列出的 Microsoft 产品中存在的问题。

更多信息

有关如何解决 SQL Server 2000 中的连接问题的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
827422 (http://support.microsoft.com/kb/827422/) 如何解决 SQL Server 2000 中的连接问题

这篇文章中的信息适用于:
Microsoft SQL Server 2000 标准版
Microsoft SQL 2005 Server Enterprise
Microsoft SQL Server 2005 Standard Edition
 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值