数据系列:通过Windows Azure SQL数据库防火墙规则控制数据库访问

编者按:今天的文章来自于我们用户体验团队的技术作家Kumar Vivek。这篇文章对Windows Azure SQL数据库中新推出的数据库级防火墙规则进行了简要概括。

Windows Azure SQL数据库防火墙能够阻止他人对你SQL数据库的访问,以助你保护数据。你能够指定防火墙规则,如限定允许访问的IP地址范围,来控制对数据库的访问。然而,这些规则定义在服务器层级,允许被授权的终端访问你的整个SQL数据库服务器,也就是该逻辑服务器上的所有数据库。那如果你想控制服务器上的某个特定数据库(包含安全信息)的访问权限,该怎么办呢?你可能就要费些脑筋了。

那么现在,你能够做到了!现介绍Windows Azure SQL数据库中的数据库层级防火墙规则!除已有的服务器层级防火墙规则,你现在能够为SQL数据库服务器中的每个数据库定义防火墙规则,来限制特定终端的访问权限。要实现这一功能,你必须创建数据库层级防火墙规则,确保发出请求客户端的IP地址在服务器层级防火墙规则之外、数据库层级防火墙规则之内。

下面说明了来自客户端的一个连接请求是如何通过Windows Azure SQL数据库防火墙规则的:

  • 如果请求的IP地址在服务器层级防火墙规则指定的范围内,则授予SQL数据库服务器连接权限。
  • 如果请求的IP地址不在服务器层级防火墙规则指定的范围内,则检查数据库层级防火墙规则。如果请求的IP地址在后者指定的范围内,则只授予相应数据库的连接权限。
  • 如果请求的IP地址不在任何服务器层级或数据库层级防火墙规则指定的范围内,则连接请求失败。

更多详细信息,请阅读全文  Windows Azure SQL Database Firewall.

管理数据库层级防火墙规则

不像服务器层级的防火墙规则,数据库层级的防火墙规则是针对每个数据库而建立的,并储存在独立的数据库中(包括master)。每个数据库中的sys.database_firewall_rules视图显示在当前数据库层级防火墙规则中。而且,你能用 每个数据库中的sp_set_database_firewall_rule 和sp_delete_database_firewall_rule存储过程来新建或者删除数据库层级防火墙规则。

关于数据库层级防火墙规则管理的详细信息,请阅读全文How to: Configure the Database-Level Firewall Settings

本文翻译自https://blogs.msdn.com/b/windowsazure/archive/2012/08/14/data-series-control-database-access-using-windows-azure-sql-database-firewall-rules.aspx