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

Nic*_*ote 7 sql-server windows-server-2008-r2

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

我们使用此数据库的Web应用程序已安装并运行在另一个将保留的CentOS盒中.

所有这些框都由第三方托管服务提供商提供,并且都在同一个域网络上.

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

但是现在我们在使用Windows Server 2008 R2框时遇到了同样的问题.即使VPN打开,任何连接(甚至ping)远程服务器计算机的尝试都会超时.

我们在新数据库服务器上获取数据库实例连接的代码是正确的,因为当我们将该代码上传到CentOS应用程序框并运行它时,它连接正常,因为代码现在在同一物理域中的框上运行作为Windows Server 2008 R2框.但是,我们需要从远程开发机器建立连接.

这有意义吗?我们需要更改一些Windows防火墙设置以允许远程连接吗?正如我所说,我们甚至无法从远程盒子PING新的Windows Server 2008 R2机器.

AJ *_*wal 8

以下是对我起到远程连接起作用的总结.我不是这方面的专家,所以我的一些步骤可能没有必要.我从这个问题的其他答案中采取了一些步骤.

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

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


小智 7

请执行下列操作:

  1. 打开 SQL Server Configuration Manager
  2. 选择 SQL Server Network Configuration
  3. 选择您的SQL Server实例
  4. 确保已启用TCP/IP协议
  5. 如果已关闭,请重新启动服务器

考虑以下事项:

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


Nic*_*ote 1

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