我们有一个装有 SQL 服务器等的单一 Web 服务器(所有 MS、服务器 2008 Web 等)。
我们需要允许直接访问数据库,以便我们的客户可以编写报告(SSRS 就是这样!)。我们最初将数据库放在互联网上,你不会相信有多少次尝试进入 sa 帐户!
sa 帐户现在已重命名为其他名称,并且我们正在使用 Windows 防火墙。
问题是,一些客户在家工作,使用动态 IP 地址,因此他们必须每天/每周/路由器重启时发送邮件,并且我必须通过远程桌面允许该 IP 地址。
有更好的方法吗?我正在考虑为防火墙设计一个 Web 界面,他们可以添加自己的 IP 地址,或者最好直接登录,这样就可以从该 IP 访问所有内容,或类似的东西。
答案1
如果我们在此讨论的是公司设置,那么根本没有理由通过互联网访问该 SQL 服务器。
如果您需要允许漫游客户端访问,请使用带有 VPN 解决方案的适当防火墙。Watchguard 和 Palo Alto 都拥有非常好的 VPN 解决方案。另外,请检查公司当前的防火墙是否已具有此功能,大多数防火墙都有此功能。
再次强调,使用合适的防火墙!
答案2
我们有一个带有 SQL 服务器等的 Web 服务器
可能是一个糟糕的设计选择——Web 服务器和数据库都希望拥有大量的“空间”来运行。将两者放在同一台服务器上可能会给您带来争用问题。
我们需要允许直接访问数据库,以便我们的客户可以编写报告...... SSRS
为什么?如果您在这台机器上已经有“Web 服务器、SQL Server 等”,为什么不也安装 SSRS 并授予它们访问 [Web 界面] 的权限呢?
我们最初的数据库只是放在互联网上......
不就是不。
Web 服务器内置了保护功能,可以抵御“外部”存在的“恶意行为”。数据库服务器则没有。您必须将数据库与“不良信息”隔离开来。
通过 Web 服务器运行 SSRS 应用程序是实现此目的的直接方法。
答案3
我认为 VPN 是一个很好的解决方案(如果我正确理解了您的需求)。您可以使用 OpenVPN 轻松设置一个免费且非常安全的 VPN(您可以使用用户名/密码和 2048 位证书:如果您问我,我非常确定)。我发现实现此解决方案的最快和最简单的方法是使用一台相当旧的 PC(任何带有 2 个网卡的 p4 都可以完成这项工作)和 Zeroshell(http://www.zeroshell.net/)。如需任何详细信息,请随时咨询 :)
答案4
您肯定不想让外部人员通过互联网配置生产数据库服务器上的防火墙。但为了方便起见,可以使用 PowerShell 编写 Windows 防火墙配置脚本,例如从文本文件或类似文件中输入规则。然而,这并不能解决您的眼前问题。
重新考虑客户端如何连接到服务是否可行?通过以下方式让客户端访问您网络中原本安全的 Windows 计算机(安装了必要的客户端软件):阿帕奇鳄梨酱或者 VPN(根据 @Pittos 的建议)可以让您将重复的安全更改从数据库服务器转移出去。您还可以管理用户凭据而不是防火墙规则。这可能会大大降低出错的风险。