我可以在不同网络上的服务器之间建立链接 SQL 服务器连接吗?

我可以在不同网络上的服务器之间建立链接 SQL 服务器连接吗?

我们在托管公司异地托管了一个生产 SQL 服务器,并且在我们自己的网络中有一个暂存环境。我们希望能够设置一个 SQL 作业,定期将暂存服务器上的表中的内容复制到生产环境中,我认为我们需要设置一个链接服务器连接来执行此操作。我需要让托管公司做什么才能允许我们进行设置?我们可以通过 RDP 访问生产服务器,我只需要知道从托管公司的角度来看需要进行哪些网络和安全配置,这样我就可以要求他们这样做。

答案1

链接服务器不是最佳选择。

  • 它会打开 SQL Server 以进行远程 T-SQL 执行,这是一个非常严重的安全漏洞
  • 由于涉及不同的域,它需要基于 SQL 密码的身份验证
  • 当面临不稳定的连接时,它不提供任何冗余
  • TDS 作为协议,其设计初衷并不是为了提高速度

一个更好的选择是使用服务代理

  • SSB 在专用端口上运行,不允许任意 T-SQL 命令,就像链接服务器一样
  • SSB 支持跨不同域的基于证书的身份验证
  • 消息碎片化和传递公平性确保在连接不良/速度慢的情况下也能顺利运行
  • SSB 使用专为速度而设计的高吞吐量协议,数据库镜像中使用 sam eprotocol。

如果您坚持使用链接服务器,那么您必须:

  • 启用 SQL Server 来监听公共互联网地址
  • 在服务器上启用 TCP,并在防火墙上打开 SQL 侦听端口(默认 TCP 1433)。如果服务器侦听非默认端口,则必须启动 SQL Browser 服务并在防火墙上打开端口 1434 UDP,并允许 sqlservr.exe 在防火墙上打开任意端口。
  • 您必须启用 SQL 身份验证才能允许基于 SQL 的密码。
  • 为了保护流量,您应确保使用 SSL,请参阅如何使用 Microsoft 管理控制台为 SQL Server 实例启用 SSL 加密如何启用频道加密
  • 检查、再检查、再检查 [sa] 登录名是否具有防弹密码,只有您绝对 100% 信任的人知道该密码。您向互联网开放的 TDS 端口将遭受来自数百万个自动机器人对 [sa] 的持续暴力攻击。

相关内容