通过TCP/IP连接到外部托管计算机上的2014 SQLEXPRESS数据库

Jay*_*Jay 1 sql-server external remote-access tcp-ip

我正在研究一个系统,我可以从多个位置更新一个小型数据库.我希望在我的家用计算机上托管数据库,并允许通过tcp/ip从其他两个位置连接到数据库.

到目前为止我做了以下事情:

  1. 为SQLEXPRESS启用TCP/IP
  2. 我的防火墙上允许端口1433 tcp
  3. 我的防火墙上允许端口1434 udp
  4. 启用S​​QLEXPRESS服务器以允许远程连接

我希望能够通过在其他PC上打开sql management studio并使用以下格式[ExternalIP]\SQLEXPRESS来连接到数据库但是到目前为止我还是无法这样做.我看过我的外部IP可能是什么,我得到两个不同的值:

86.XX.X.XXX 66.XXX.XX.XX

当所有内容都已正确配置时,我是否应该使用这种格式的这些值中的任何一个来连接其他sql管理工作室?有什么步骤我不知道了吗?

Ale*_*dro 5

默认情况,SQL Server的命名实例不会在端口1433上侦听,而是在每个服务启动时确定的随机端口上侦听.sql浏览器服务的功能是为客户端提供每个运行实例的实际端口(并且使用固定的1434 udp端口完成).

必要的步骤是将服务器配置为使用固定端口,然后设置防火墙和路由器以允许该端口.连接时,只需使用外部IP地址和端口,但不要使用实例名称(因为它会调用浏览器服务,而固定端口则不需要).

要恢复,必要的步骤将是这些:

  1. 在服务器上启用远程连接.
  2. 根据需要设置用户和权限(Windows身份验证是互联网的痛苦,因此强烈建议使用SQL身份验证)
  3. 为实例启用TCP/IP.
  4. 将服务器配置为使用固定端口进行连接(标准为1433).在这里查看说明.
  5. 重启数据库服务器.
  6. 授予防火墙权限,以允许所选端口上的服务器可执行传入连接.此时局域网中的其他计算机应该连接.
  7. 在路由器上将您打开的端口转发到本地计算机专用IP(请注意,在Windows中,您必须将计算机配置为使用固定的本地IP而不是DHCP).
  8. 通过互联网或仅使用外部IP与客户端进行测试.

请注意,对于来自远程客户端的连接,作为服务器名称,您必须使用86.XX.X.113,1433(端口号用逗号分隔,如果是1433则是可选的).请注意,即使您将其安装为SQLEXPRESS或其他任何名称,也没有实例名称.这是因为有一个固定的侦听端口(默认情况下与默认实例一样).这消除了浏览器服务和udp 1434的需要,以及动态端口转发的痛苦.

您还应该检查您的ISP最有可能为您提供动态外部IP,以便在更改时重新配置客户端.或者您可以使用一些动态DNS服务.