从任何地方访问Azure SQL数据库

时间:2018-02-12 17:11:57

标签: sql-server azure

我们为Motorsport开发了一个基于SQL的应用程序,我们的一些客户正在寻找Azure来保存数据库。麻烦的是他们环游世界参加比赛,因此需要使用他们拥有的互联网连接来访问数据库,并且无法在防火墙规则中预先定义IP地址。是否可以有效地禁用Azure防火墙,以便他们只需要输入登录凭据到SQL服务器而不必在特定的IP地址范围内?

鉴于SQL数据库的整个想法是访问任何地方,很难相信你必须根据IP地址定义访问权限,但我找不到任何暗示的东西!

3 个答案:

答案 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';  

上述范围允许所有。这基本上意味着允许此范围通过防火墙。这适用于数据库级防火墙规则。对于逻辑服务器级规则,只需按如下方式设置规则

enter image description here

如果未设置数据库级防火墙规则,则首先应用逻辑服务器级规则。

首先,从安全角度来看,通过Internet直接访问您的数据库是一种非常糟糕的做法。业务/最终用户通常不具备安全意识方面的培训,并且他们的计算机很可能受到损害。您应该考虑采取一些方法来提高安全性:

  • 在Azure中使用内置的Azure SQL数据库安全性功能,例如透明数据加密(TDE),以始终加密您的数据库。如果可能,请使用Azure密钥保管库存储加密主密钥,以便为“整个”世界添加更多加密层。另一个功能是动态数据屏蔽,但我不认为它是有用的,因为您允许数据​​库访问级别。当然,掩盖一些领域是值得考虑的。另外,启用威胁检测以监控是否存在任何异常查询(例如SQL注入)。
  • 与Azure Active Directory集成以监控访问标识。可以监视和通知Azure AD身份验证的每个访问权限。在Azure AD中,查看条件访问策略以查看它是否适用于您的业务用户。说所有商业用户通常只前往一个国家/地区列表或他们使用托管计算机。 Azure AD(Premium)还为您提供登录风险功能,该功能结合Analaytics和机器学习来识别登录是否具有潜在风险(来自不明身份的人)。如果将Azure AD视为一种选择,并且更强大,那么请考虑使用具有多因素身份验证选项的Azure AD Universal。
  • 建立Azure VNET ,然后为您的Azure SQL数据库配置点对站(P2S)VPN。幸运的是,最近Microsoft宣布能够控制给定VNET内的Azure SQL数据库的入站。设置P2S VPN后,请提供给您的业务用户证书。在连接到VNET之前,需要在商业用户的笔记本电脑上安装此类证书。无法访问其计算机的攻击者无法连接到您的Azure SQL数据库。
  • 添加应用层(例如ASP.NET)和登录页面,让您的业务用户可以从此Web应用程序进行访问。这可能会增加开发工作,但这有助于消除对数据库连接字符串(如暴力)的至少一些直接攻击。在应用程序中,处理SQL查询以减少直接SQL注入。这种方式需要深入了解发展。

如果财务预算有限,我强烈建议您先应用Azure AD和VNET。以下是成本起草:

  • Azure VPN网关:每月29.2美元(每小时0.04美元* 730美元)。基本计划就够了。该计划最多支持128个P2S连接。如果您的业务用户数大于128,只需创建一个新的VPN网关。
  • Azure AD :如果您定位到免费套餐,则最多可以存储500,000个用户。如果您想使用条件访问和报告,则需要为Premium P1计划支付$ 6 /用户/月
  • Azure SQL数据库审核&威胁检测:15美元/逻辑服务器/月。如果启用了审核,则向您收取Blob存储费用,但Blob的成本不应该是真正的问题。
  • Azure App Service :如果添加应用层。小型计划(基本或标准)的成本约为60-70美元/月。成本还包括开发和部署工作。

我在这里所说的可能会增加对工作成本和构建成本的担忧。好吧,我会把这个决定考虑给你。只需一件事,如果发生事故,请考虑数据泄露和您的商业声誉。成本远远超过实施成本。