SQL Server连接错误(一个奇怪的)(尚未解决)

SQL Server可以从本地系统连接,但不能从networking中的远程系统连接。 当我尝试从Management Studio连接到SQL Server时,Visual Studio的错误代码是40,错误代码是1326。

  • 防火墙不是问题
  • 从SQL Server启用TCP / IP连接
  • 有2个PCterminal可以连接到SQL Server,但第三个不能使用相同的连接string,因此连接string是正确的

它是SQL Server 2000

任何帮助将不胜感激

尝试连接从ODBC(控制面板,pipe理员,odbc,新的用户连接)。 尝试创build一个连接并在向导结尾进行testing。 如果有效,那么这个问题与你的OLEDB连接string有关。
否则,它可能是

  • 一个DNS问题(当您ping,请确保正确的IP地址回来)
  • 服务器权限问题(请参阅是否可以将驱动器映射到SQL Server并再次尝试连接)
  • 一个SQL权限问题(检查SQL安全面板,确保用户为db_reader权限(最小)到他/她的默认数据库)
  • 一个错误的SQL别名(在ODBC向导中,在连接信息下,确保服务器名称只列出一次,如果在多次出现的话,可以安装SQL客户端configuration工具并删除所有额外的SQL Server别名将[服务器名称]redirect到默认的其他机器或无效协议)。

尝试从第三个terminalping服务器,看看它们之间是否有连接

错误40有很多原因。请在这里查看更多信息。

如前所述,请检查您是否可以从第三个方块ping SQL Server。

另外,请检查在服务器上的客户端上是否安装了相同版本的MDAC。

请参阅这篇文章的其他修补程序

错误40和1326都提示了命名pipe道错误,而不是TCP错误。 既然你提到你的服务器已经启用了TCP,但是你没有提到命名pipe道,我build议你把命名pipe道排除在外。 如果您没有明确禁用命名pipe道,那么客户端将始终首先尝试此协议,并且到达SQL Server 之前命名pipe道需要在文件共享层上进行SMB连接和域身份validation,从而导致各种错误。 你有两条途径:

  • 完全禁用客户端上的命名pipe道。 请参阅configuration客户端networking协议 。
  • 在连接string中强制使用tcp,请在连接string中对服务器名称部分使用tcp:servername语法,请参阅如何使用连接string中的服务器名称参数指定客户端networking库 。