云数据安全:SQL Azure数据保护
毫无疑问,将数据迁移到云是当前讨论的一大焦点。你可以在微软的SQL Azure云数据库中快速运行一个SQL Server实例,并为一个新的事务性应用程序或报表等数据分析应用迅速加载数据。
但是,将数据迁移到SQL Azure或Amazon的EC2需要非常小心。保护SQL Server云中数据是非常重要的,因为你不希望向不相干的人暴露客户数据。
SQL Azure数据保护
Azure防火墙。首先要记得开始使用SQL Azure并不是向外界打开数据库。默认情况下,SQL Azure的数据库只能由微软的内部Azure服务器访问。为直接连接到SQL Azure的实例,配置你的SQL Azure防火墙以允许家中或办公室的IP地址可以连接。在 Windows Azure的管理门户进行登录,在订阅标签下你应该可以看到你的SQL Azure订阅,如1图所示。
图1显示了Windows Azure的订阅和防火墙规则。
选择服务器 “fz9fnjspok”,从订阅菜单中可以看到防火墙规则按钮如图1中的右侧。点击它,你可以查看和编辑SQL Azure实例的防火墙规则。
正如图2所示,此例中只有两项防火墙规则。 最佳实践认为你应使用尽可能少的防火墙规则。如果以后您有活动比如你在开会或度假需要添加规则,当完成后再删除它。这将有助于防止未经授权的人闯入SQL Azure实例,停掉防火墙甚至很短的一段时间也是非常危险的。
图2 SQL Azure这个实例上的防火墙规则。
对象级权限。除了?保护您的SQL Azure实例的防火墙,你也会希望他们遵循最佳实践,即授予用户或者登录者最少的权限以足够完成他们的工作。目前的客户端工具不容易做到这一点,当连接到 SQL Azure的数据库,SQL Server Management Studio中没有修改权限的用户界面。SQL Azure不支持数据库角色以及对象级权限,因此配置帐户即应用程序使用者以尽可能少的最低权限来连接SQL Azure数据库。这使用户无法访问他们并不需要的对象,而这正是你在一个传统的SQL Server数据库实例中所做的。
SQL注入和Azure。由Azure托管的应用程序正如一个传统的Web应用程序容易受到SQL注入攻击。这样被返回到最终用户浏览器的这些数据是不应该得到信任的,且所有数据库调用应是设置成参数化的(而不是在应用程序内做字符串连接)。如果您使用一个类似对象关系映射(ORM)的实体框架(EF)来编写应用程序代码,ORM 将会为你参数化数据库调用。不过,如果你不是使用ORM,应用程序对数据库调用的参数化必须是安全的。而使用一个单一的非参数化应用程序调用将允许攻击者进入你的数据库。
相关新闻>>
- 发表评论
-
- 最新评论 更多>>