Sql server 从远程客户端访问Windows Server 2008 R2上的SQL Server

Sql server 从远程客户端访问Windows Server 2008 R2上的SQL Server,sql-server,windows-server-2008-r2,Sql Server,Windows Server 2008 R2,我们目前正在从使用安装在远程CentOS设备上的PostgreSQL转向使用安装在远程Windows Server 2008 R2设备上的MS SQL Server 2008 R2 我们使用此数据库的web应用程序已安装并运行在另一个CentOS机箱上,它将保留在该机箱中 所有这些盒子都由第三方托管提供商提供,并且都位于同一域网络上 因此,我们的开发远离服务器/数据库域,因为我们的开发机器是远程的。在过去,开放VPN足以让我们在PC上本地运行的web应用的开发实例远程连接到CentOS box上

我们目前正在从使用安装在远程CentOS设备上的PostgreSQL转向使用安装在远程Windows Server 2008 R2设备上的MS SQL Server 2008 R2

我们使用此数据库的web应用程序已安装并运行在另一个CentOS机箱上,它将保留在该机箱中

所有这些盒子都由第三方托管提供商提供,并且都位于同一域网络上

因此,我们的开发远离服务器/数据库域,因为我们的开发机器是远程的。在过去,开放VPN足以让我们在PC上本地运行的web应用的开发实例远程连接到CentOS box上运行的PostgreSQL数据库

然而,现在我们在Windows Server 2008 R2盒上也遇到了同样的问题。即使VPN打开,任何连接(甚至ping)远程服务器机器的尝试也会超时

我们用于连接新数据库服务器上的数据库实例的代码是正确的,因为当我们将该代码上载到CentOS应用程序框并运行它时,它连接良好,因为该代码现在运行在与Windows server 2008 R2框相同的物理域中的一个框上。但是,我们需要从远程开发机器建立连接

这有意义吗? 是否需要更改某些windows防火墙设置以允许远程连接?
正如我所说的,我们甚至无法从远程机箱PING新的Windows Server 2008 R2计算机。

请确保取消阻止用于SQL Server的1433端口。如果您的实例已命名,则需要在configuration manager中为此实例设置端口,然后在防火墙中取消阻止此端口。

执行以下操作:

  • 打开SQL Server配置管理器
  • 选择SQL Server网络配置
  • 选择您的SQL Server实例
  • 确保启用了TCP/IP协议
  • 如果服务器已关闭,请重新启动服务器
  • 考虑以下事项:

    • 身份验证模式(Windows/SQL Server/mixed)
      • Windows用户权限
    • 连接字符串中的服务器名称
      • \(相互物理网络)
      • tcp:\(不同的物理网络)

    结合其他答案的提示和托管提供商的帮助,我们成功地解决了这个问题。这主要是因为我们的提供商阻止了这些端口。

    以下是我如何让远程连接正常工作的总结。我不是这方面的专家,因此我的一些步骤可能没有必要。我从这个问题的其他答案中采取了一些步骤

    • 打开SQL Server配置管理器
    • 选择SQL Server网络配置
    • 选择您的SQL Server实例
    • 确保TCP/IP协议已启用
    • 右键单击TCP/IP协议
    • 选择属性
    • 单击IP地址选项卡
    • 向下滚动至IP4。服务器的IP地址应该在这里。将“活动”设置为“是”,将“启用”设置为“是”。将TCP端口设置为1433(不知道是否有必要。可以提供一些专家意见)
    • 向下滚动到IPAll。将TCP端口设置为1433
    • 为端口1433制定入站防火墙规则
    • 打开sql server management studio,右键单击服务器实例,属性->连接->允许远程连接。安全->SQL Server和Windows身份验证模式
    • 重新启动sql server服务
    • 重新启动sql server浏览器

    另一个答案是,您还必须在客户端中使用正确的连接字符串。

    我知道这是一篇旧文章,但需要检查的另一件事是确保您在SQL Server网络配置的IP地址选项卡上启用了特定的IP地址和端口,这是对其他文章的补充。如果在Ip配置和其他事项之后仍然存在问题,请参阅此以了解更多信息

    请检查您的客户端pc的日期时间

    它应该与服务器相同

    [我最近用这种技术解决了这个问题]


    如果客户端计算机未与服务器同步,则sql server中存在问题。客户端未连接到服务器。

    您好,谢谢您的建议。我检查了Windows防火墙。它被关掉了,所以我把它打开了。这禁用了CentOS应用程序盒的连接,因此我遵循了您的提示,添加了允许各种SQL Server端口的规则,并将固定端口应用于SQL Server的命名实例。这样做可以从CentOS应用程序盒中重新启用连接,所以一旦打开Windows防火墙,您的提示确实会有所帮助。但是,无论VPN是否打开,我们仍然无法从远程机器连接。所有SQL Server端口防火墙规则都设置为域+专用+公用。如果无法连接,则是网络问题。检查您的路由器配置,也许您可以通过从命令行运行netstat来检查流量。您好,谢谢。选中所有实例的TCP/IP均已启用,则为。你说的“tcp:”是什么意思?当前连接字符串如下所示,在下一个注释中。。。正如我所说的,在同一个物理网络中,这可以正常工作,但在不同的远程物理网络中则不行。我应该把这个tcp:?jdbc:sqlserver:/:;instanceName=;数据库名=;此外,当我打开windows Server 2008 R2计算机的windows远程桌面并在该计算机上启动SQL Server Management Studio以连接到使用windows身份验证的数据库时,这会成为一个问题吗?对不起@Nick,我没有注意到
    我们甚至无法PING新的windows Server 2008 R2计算机
    。我认为这只是SQL Server的一个问题。在这种情况下,您应该检查网络设备和配置,但我不是管理员,也无能为力:)我尝试了很多解决方案,这一个“向下滚动到IPAll。将TCP端口设置为1433”解决了我的问题