使用远程托管专用服务器上的 SQL Sever 数据库,我可以使用安装在同一服务器或本地计算机上的 SQL Server Management Studio 工作。在第一种情况下,我应该使用远程桌面工作,这会使工作变慢一些。在第二种情况下,我需要在服务器的防火墙中打开额外的端口,但我会有更舒适的用户体验。
这两者的推荐做法是什么?
使用远程托管专用服务器上的 SQL Sever 数据库,我可以使用安装在同一服务器或本地计算机上的 SQL Server Management Studio 工作。在第一种情况下,我应该使用远程桌面工作,这会使工作变慢一些。在第二种情况下,我需要在服务器的防火墙中打开额外的端口,但我会有更舒适的用户体验。
这两者的推荐做法是什么?
我所知道的方法是建立与另一个站点的 VPN 连接,从而无需打开端口并保持设置的安全性,同时无需 RDP 进入其他服务器。当然,您在工作时冒着断开连接的风险,因此可能会过早结束查询,但除此之外......这就是我们所做的,它对我们来说效果很好。
如果您要定期远程使用它们,您可能会考虑使用半永久 VPN 连接(我敢肯定有更好的名称 .. VPN 桥接器?),这将允许您通过 IP 地址进行连接。一个网络人可以在这里更好地权衡。
如果可以的话,打开 SQL 服务器以引导外部连接是一个避免的想法 - 您正在显着增加可见的攻击表面积,并且您与服务器之间的任何通信(可能除了身份验证阶段的登录凭据)都不会加密。如果您必须打开端口,请确保它仅对您的固定 IP 地址开放(假设您有不被其他任何人共享的固定地址,即您没有使用让您在 NAT 安排之后的 ISP,例如大多数移动互联网提供商)。
更好的选择是安装 VPN 设置(例如OpenVPN)或 SSH 服务(Cygwin包括一个通用标准 OpenSSH 的端口,我目前资助它作为 Windows 2003 和 2008 下的服务运行良好),您可以通过该端口建立连接。通过这种方式,SSH 或 VPN 可以同时处理身份验证和加密,并添加(假设您有安全的密码/密钥)直接开放的端口所没有的重要保护层。他们提供的压缩支持将有助于缩短任何返回少量数据的查询的响应时间。基于 SSHd 的安排可能更容易设置,特别是如果您当然已经熟悉 SSH,尽管大多数真正的 VPN(如 OpenVPN)具有通过它们进行的通信更有可能在短暂的通信中断(如 ADSL 路由器丢失同步并重新连接)。如果您在目标计算机或目标站点上运行多个 SQL 服务器实例,则 VPN 选项也不会那么麻烦。我已经成功地将这两种方法用于许多事情,包括使用标准工具的本地版本与 SQL Server 对话并发现它们运行良好(尽管我的 OpenVPN 服务器都在 Linux 上,但我被告知它运行良好Windows 上的服务器)。
像这样直接连接到远程计算机(输入)可能非常方便,但请注意,即使通过仔细的 VPN 设置,您也会增加 SQL Server 所接触的计算机数量,尤其是当它是一个生产系统时用户的真实数据,确保您花时间确保可以通过 VPN/隧道看到服务器的机器是安全的并且自己没有受到感染(当然,您可能已经这样做了,但它总是值得重申!)。
在我们的办公室,我们有两台防火墙,一台用于公共互联网,另一台用于内部网络。如果您在内部网络上,则可以直接连接到 SQL 服务器。如果你在外部互联网上你不能,因为防火墙上没有打开端口。如果要通过 Internet 连接,则必须通过 VPN 登录。
在我们的办公室,我们有一个连接所有数据库服务器的永久 VPN,并且我们通过远程服务器与本地 Management Studio 合作。使用远程桌面比使用本地工具的外观和感觉要慢一些 :)。
当确实需要远程桌面连接时,您可以使用一些免费工具(如 Royal TS)并将所有服务器连接保存在加密文件中,仅在需要时使用。