0

我们在将 SQL 2008 R2 (10.50.1600) 作为命名实例安装时遇到了一个奇怪的问题。为了让任何外部客户端连接,我们必须遵循一定的程序,但不应该这样做。现在我确实打开了 SQL 服务器上的TCP/IPNamed Pipes协议并重新启动它,这不是问题。我们位于 Active Directory 域(从 Server 2003 运行)。无论服务器或客户端是什么操作系统(XP、2003、2008、Vista、7、64 位、32 位等),问题都存在。任何可以连接的东西也会出现此问题,例如 SQL Management Studio、ADO(来自我们的应用程序)等。

问题是在任何客户端可以连接到这个服务器之前,每个客户端机器必须首先通过 ODBC 连接到这个服务器(我们不使用 ODBC)。在执行此操作之前连接到 10.5 SQL 服务器的任何尝试都会导致“服务器不存在或访问被拒绝”。但是一旦我们可以在 ODBC 中连接(通过Named Pipes),那么其他一切都开始工作了。使用计算机名称和 IP 地址时会出现同样的问题。事实上,如果我们想用计算机名\实例名连接,那么我们必须先在ODBC中这样做,然后如果我们想通过IP地址\实例名连接,那么我们也必须这样做那。

我们不得不在每台客户端计算机上执行此操作。同样,一旦 ODBC 能够通过命名管道连接到此 SQL 服务器,那么该客户端的所有未来尝试都会起作用。

什么可能导致这种情况发生?如何避免?我不应该像我们所说的那样做这个“ODBC 技巧”。我从来没有在任何其他版本的 SQL 上遇到过这个问题。

4

2 回答 2

2

该问题可能与 SQL Browser 服务有关。每个 sql 实例都有不同的端口号 - 尝试从客户端连接为 IP 地址、端口(例如 123.123.123.1,1433) - 这将从等式中排除 DNS 和浏览器

编辑:现在知道它与浏览器相关,请尝试查看为什么客户端无法访问 SQL 浏览器(通常是端口 1434)。服务未启动?可能是防火墙阻止?

默认情况下,微软现在已经在安全方面捆绑了一切,所以现在任何新配置通常都需要相当详细的安全规划、策略配置、权限等。欢迎来到不信任时代;)

于 2012-03-19T20:31:52.317 回答
0

您可以通过创建一个简单的文件轻松测试您的连接。请按照“如何测试 SQL Server 连接”中的步骤操作:http: //teusje.wordpress.com/2012/02/21/how-to-test-an-sql-server-connection/

于 2013-01-15T09:38:28.587 回答