我希望允许从Microsoft Access数据库远程访问SQL Server数据库,以允许我的客户端在他们希望的时候构build报表。
我可以通过在服务器上的Windows防火墙中打开相关的端口,而没有任何问题。 然而,这似乎是一个非常不安全的方式允许访问和我的服务器惊人地被某人(或多个人)试图猜测'sa'密码的目标。
虽然根据公布的指导方针,这个密码已被非常强烈地设置,但我想阻止这种情况发生。
围绕允许以这种方式访问服务器的最佳实践是什么?
非常感谢,安东尼
如果你可以帮忙的话,你不应该像这样直接向公共互联网开放服务。
我build议使用某种forms的VPN来提供适当的安全性(完全encryption的stream量等),只允许那些有VPN密钥的人甚至可以看到SQL服务器存在,甚至可以通过添加压缩来加速混合。 它不需要花费任何东西: OpenVPN是免费的(和OSS),稳定和可靠 – 我们一直用它来做类似的事情。
如果你不想要一个完整的VPN,那么在你的机器上安装一个SSH服务器,让你的客户端通过它的隧道连接function转发连接到端口1433.有很多的OpenSSH端口是为Windows设置的,所以这个解决scheme再次是F + OSS。
如果你的客户真的无法应付VPN或SSH客户端的额外麻烦,那么你就无能为力了。 如果他们有一个固定的IP地址,您可以通过限制防火墙“接受端口1433连接”规则到该地址,从其他来源中删除login尝试。 如果他们有一个dynamic的地址,但从一个固定的范围(即他们总是从同一个ISP连接),那么你至less可以将规则的范围限制在该范围的地址。
如果你的客户不愿意使用VPN或SSH隧道,你可以通过称赞体面encryptionstream量(直接连接将以纯文本forms发送数据),压缩stream量(这可能是重要的他们运行报告,输出许多行),并在OpenVPN的情况下,一个更可靠的连接(OpenVPN更具弹性的一个丢弃和重新连接或其他networkingblip比直接连接)。 有一个SQL服务器在公共networking直接寻址通常被认为是一个坏主意。
不要使用SA或重命名SA帐户 。
这似乎是SQL Reporting Services在这里是完美的。 我可能完全脱离了基础,但似乎将报告提供给客户端(如果可能的话,在单独的服务器上),而无需将数据库服务器置于火线上,这样做会很方便。