Answers:
打开SQL Server以直接进行外部连接的想法是避免以下情况的发生-显着增加了攻击的可见表面积,并且与服务器之间的任何通信(也许除了身份验证阶段的登录凭据外)都不会加密。如果您必须打开端口,请确保仅对您的固定IP地址开放(假设您拥有不由其他任何人共享的固定地址,即您没有使用像NAT这样的ISP背后的ISP)大多数移动互联网提供商)。
更好的选择是安装VPN设置(例如OpenVPN)或SSH服务(Cygwin包括通用标准OpenSSH的端口(我资助该端口目前作为Windows 2003和2008下的服务运行良好),可以通过该通道建立连接。这样,SSH或VPN既可以处理身份验证,也可以处理加密,并添加(假设您具有安全的密码/密钥)重要的保护层,而直接打开的端口将没有该保护层。他们提供的压缩支持将为返回的数据量较少的任何查询缩短响应时间。基于SSHd的配置可能更易于设置,尤其是如果您已经熟悉SSH,尽管大多数真正的VPN(例如OpenVPN)具有的优势是,通过它们进行的通信更有可能经受短暂的通信中断(例如ADSL路由器丢失)同步并重新连接)。如果您有多个SQL Server实例在目标计算机或目标站点上运行,则VPN选项的麻烦也就减少了。我已经成功地将这两种方法用于很多方面,包括使用本地版本的标准工具与SQL Server进行对话,并发现它们运行良好(尽管我的OpenVPN服务器都在Linux上,但是我听说它运行良好) Windows上的服务器)。
这样直接连接到远程计算机可能非常方便,但是请注意,即使通过仔细的VPN设置,您也会增加SQL Server所能访问的计算机数量,尤其是当它与您的生产系统一起使用时。用户的真实数据输入之前,请确保您花一些时间确保可以通过VPN /隧道看到服务器的计算机本身是安全的并且没有被感染(当然,您可能已经这样做了,但是始终值得重申!)。
我知道的方法是建立与其他站点的VPN连接,从而消除了打开端口和维护设置安全性的需要,同时消除了将RDP插入其他服务器的需要。当然,您有在工作时断开连接的风险,从而可能过早地终止查询,但是否则……这就是我们所做的,并且对我们来说很好。
如果您打算定期远程使用它们,则可以考虑使用半永久性VPN连接(我确定有一个更好的名称.. VPN网桥吗?),该连接将允许您仅通过IP地址进行连接。网络专家可以在这里发挥更大的作用。