我们为Motorsport开发了一个基于SQL的应用程序,我们的一些客户正在寻找Azure来保存数据库。麻烦的是他们环游世界参加比赛,因此需要使用他们拥有的互联网连接来访问数据库,并且无法在防火墙规则中预先定义IP地址。是否可以有效地禁用Azure防火墙,以便他们只需要输入登录凭据到SQL服务器而不必在特定的IP地址范围内?
鉴于SQL数据库的整个想法是访问任何地方,很难相信你必须根据IP地址定义访问权限,但我找不到任何暗示的东西!
答案 0 :(得分:1)
我强烈反对,但如果是开发数据库,您可以在防火墙中创建AllowAll规则:How can I allow unknown users to access my SQL (Azure) DB?
更好的选择是使用VPN服务器,以便用户必须登录VPN才能访问数据库。这样每个人都无法访问Db。您可以通过添加登录证书来进一步保护VPN,以便只有证书的所有者才能登录VPN。
答案 1 :(得分:0)
我的猜测是你有几个选择:
使用Azure Active Directory用户保护数据库。每个用户都可以使用特定权限登录数据库,您也可以将其作为读者并禁用防火墙。您甚至可以实现行级安全性。
创建一个Azure API应用程序,用于对数据库执行操作。让用户使用api的凭据登录并将这些凭据传递给SQL服务器。
我认为结合行级安全性是最安全的选择之一。在我的博客上:msftplayground我创建了一组关于它的文章。
答案 2 :(得分:0)
在向您提供有关安全性的模式建议之前,为了回答您的问题,是您可以使用以下T-SQL允许All入站到Azure SQL数据库
EXECUTE sp_set_database_firewall_rule N'Allow Azure', '0.0.0.0', '255.255.255.255';
上述范围允许所有。这基本上意味着允许此范围通过防火墙。这适用于数据库级防火墙规则。对于逻辑服务器级规则,只需按如下方式设置规则
如果未设置数据库级防火墙规则,则首先应用逻辑服务器级规则。
首先,从安全角度来看,通过Internet直接访问您的数据库是一种非常糟糕的做法。业务/最终用户通常不具备安全意识方面的培训,并且他们的计算机很可能受到损害。您应该考虑采取一些方法来提高安全性:
如果财务预算有限,我强烈建议您先应用Azure AD和VNET。以下是成本起草:
我在这里所说的可能会增加对工作成本和构建成本的担忧。好吧,我会把这个决定考虑给你。只需一件事,如果发生事故,请考虑数据泄露和您的商业声誉。成本远远超过实施成本。