症状
<script type="text/javascript">loadTOCNode(1, 'symptoms');</script>
当您通过使用“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 策略。 |
原因
<script type="text/javascript">loadTOCNode(1, 'cause');</script>
此问题在连接的发现阶段出现。当源 IP 更改时,客户端上的 IPSec 策略会丢弃来自服务器的数据包。
替代方法
<script type="text/javascript">loadTOCNode(1, 'workaround');</script>
要变通解决此问题,必须硬编码 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
状态
<script type="text/javascript">loadTOCNode(1, 'status');</script>
Microsoft 已经确认这是在“适用于”一节中列出的 Microsoft 产品中存在的问题。
更多信息
<script type="text/javascript">loadTOCNode(1, 'moreinformation');</script>
有关如何解决 SQL Server 2000 中的连接问题的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
827422
(http://support.microsoft.com/kb/827422/) 如何解决 SQL Server 2000 中的连接问题