从 Internet 访问 SQL Server AlwaysOn HA 侦听器

Too*_*ats 2 sql-server listener failover availability-groups

我已经成功地在两台服务器之间创建了一个 SQL Server AlwaysOn 高可用性组,并且一切似乎在内部都运行良好。每个副本都位于不同的物理位置,位于不同的防火墙和公共 IP 以及私有 IP/子网之后。现在,他们能够通过站点到站点 VPN 直接相互通信。

我用来访问数据库的应用程序能够连接到侦听器的 DNS。故障转移集群节点和 SQL 副本都有私有 IP,所以只要我在我的网络中运行应用程序,我就可以了。

我现在遇到的问题是我需要应用程序能够在世界任何地方使用。基本上,我需要能够从 Internet 连接到侦听器而无需 VPN,并且仍然能够利用 HA//Failover 功能。

如何做到这一点?似乎在线发布的唯一文档与 Azure 相关,但不适用于我的设置。

谢谢!

AMt*_*two 5

使您的数据库可从 Internet 访问通常被认为是一个非常糟糕的主意。

使数据库可从公共 Internet 访问是一个巨大的安全风险。端口扫描和查找可公开访问的数据库很容易。即使您在非标准端口上运行,发现面向 Internet 的 SQL Server 实例也相对容易。您的数据库可供任何人利用。除了蛮力攻击之外,您很可能会成为每个零日漏洞利用的受害者。最终,您的数据将被盗或毁坏。

看看shodan.io,看看在公共互联网上发现数据库是多么容易。您的IP地址上基本上会挂着一个大标志,上面写着“HACK ME”。

理想情况下,您将拥有一个与应用程序交互的 Web 服务。该公共 Web 服务将是唯一连接到(非公共的、受防火墙保护的)数据库的东西。这样做需要重新构建您的应用程序以使用 Web 服务,而不是直接的客户端-服务器数据库连接。如果您无法重新构建应用程序,那么 VPN 是唯一安全的解决方案。