导出 (0) 打印
全部展开

Azure SQL Database 防火墙

更新时间: 2014年4月

Microsoft Microsoft Azure SQL Database 为 Azure 和其他基于 Internet 的应用程序提供关系数据库服务。为了帮助保护你的数据,在你指定哪些计算机具有访问权限之前,Azure SQL Database 防火墙将禁止所有对 Azure SQL Database 服务器的访问。防火墙根据每个请求的起始 IP 地址授予访问权限。

若要配置你的防火墙,请创建防火墙规则,以指定可接受的 IP 地址的范围。你可以创建服务器数据库级别的防火墙规则。

  • 服务器级防火墙规则:这些规则允许客户端访问整个 Azure SQL Database 服务器,即同一逻辑服务器内的所有数据库。这些规则存储在 master 数据库中。你可以使用 Azure 平台管理门户创建服务器级防火墙规则,也可以使用由 Azure SQL Database 数据库管理 REST API 公开的Operations on Firewall Rules以编程方式完成此操作。此外,在建立访问权限后,你还可以以编程方式使用 master 数据库来查看和编辑你的防火墙配置。

  • 数据库级防火墙规则:这些规则允许客户端访问 Azure SQL Database 服务器内的单个数据库。按每个数据库创建这些规则,并且存储在单个数据库(包括 master)中。如果在此规则中指定超过服务器级防火墙规则中指定的范围的 IP 地址范围,则只有客户端具有位于数据库级规则中指定的范围内的 IP 地址才能访问数据库。因此,这些规则可以帮助将客户端的访问限制为同一逻辑服务器内的某些(安全)数据库。对于每个数据库,最多可以有 128 个数据库级防火墙规则。你可以使用 Transact-SQL 创建 master 和用户数据库的数据库级防火墙设置。有关详细信息,请参阅How To: Configure the Database-Level Firewall Settings

    note备注
    如果在 Azure SQL Database 中创建一个数据库联合(其中根数据库包含数据库级防火墙规则),则不将这些规则复制到联合成员数据库。如果需要为联合成员创建数据库级防火墙规则,你必须重新创建联合成员的规则。但是,如果你使用 ALTER FEDERATION … SPLIT 语句将包含数据库级防火墙规则的联合成员拆分为新的联合成员,新目标成员将具有与源联合成员相同的数据库级防火墙规则。有关联合的详细信息,请参阅 Azure SQL Database 中的联合

    联合的当前实现将随 Web 和企业版一起停用。请考虑部署自定义分片解决方案,来最大限度地提高可伸缩性、灵活性和性能。有关自定义分片的详细信息,请参阅向外扩展 Azure SQL Database

本主题介绍 Azure SQL Database 防火墙,以及如何定义防火墙规则来指定哪些客户端可以访问你的 Azure SQL Database 服务器和单个数据库。

本主题内容

最初,对你的 Azure SQL Database 服务器的所有访问都将被 Azure SQL Database 防火墙阻止;从 Internet 或 Azure 发起的连接尝试将无法访问你的 Azure SQL Database 服务器。为了开始使用你的 Azure SQL Database 服务器,你必须转到管理门户并且指定使你可以访问 Azure SQL Database 服务器的一个或多个服务器级防火墙规则。使用防火墙规则可以指定允许的 Internet 上的 IP 地址范围,以及 Azure 应用程序是否可以尝试连接到你的 Azure SQL Database 服务器。

但是,如果要有选择地授予对 Azure SQL Database 服务器中某个数据库的访问权限,必须使用一个 IP 地址范围(它超过服务器级防火墙规则中指定的 IP 地址范围)为所需的数据库创建数据库级规则,并确保客户端的 IP 地址位于数据库级规则中指定的范围内。

来自 Internet 和 Azure 的连接尝试必须首先穿过 Azure SQL Database 防火墙,然后才能访问你的 Azure SQL Database 服务器或数据库,如下图中所示。

在计算机尝试从 Internet 连接到你的 Azure SQL Database 服务器时,Azure SQL Database 防火墙将根据整个服务器级和(如果必需)数据库级防火墙规则检查该请求的发起 IP 地址。

  • 如果该请求的 IP 地址位于服务器级防火墙规则中指定的某个范围内,则将连接权限授予 Azure SQL Database 服务器。

  • 如果该请求的 IP 地址不位于服务器级防火墙规则中指定的某个范围内,则检查数据库级防火墙规则。如果该请求的 IP 地址位于数据库级防火墙规则中指定的某个范围内,则仅将连接权限授予匹配数据库级规则的数据库。

  • 如果该请求的 IP 地址不位于任何服务器级或数据库级防火墙规则中指定的范围内,则连接请求失败。

note备注
除了配置 Azure SQL Database 防火墙之外,你还可能需要配置你的网络和本地计算机上的防火墙。若要从计算机访问 Azure SQL Database 数据库,请确保你的网络和本地计算机上的防火墙允许在 TCP 端口 1433 上的传出 TCP 通信。(只能通过 TCP 端口 1433 使用 Microsoft Azure SQL Database 服务。)

在来自 Azure 的某一应用程序尝试连接到你的 Azure SQL Database 服务器时,Azure SQL Database 防火墙将查找指示是否允许 Azure 连接的特定防火墙设置。

其开始地址和结束地址都等于 0.0.0.0 的防火墙设置指示允许 Azure 连接。如果不允许该连接尝试,则该请求将不会访问 Azure SQL Database 服务器。

note备注
管理门户上,你可以使用单个复选框启用来自 Azure 的连接。有关详细信息,请参阅How to: Prepare the SQL Azure Firewall

在首次连接到你的 Azure SQL Database 服务器时,必须使用管理门户指定第一个服务器级防火墙设置,或者使用数据库管理 API 提供的Operations on Firewall Rules以编程方式指定。若要开始配置防火墙,请在管理门户上,单击“服务器管理”页上的“防火墙设置”选项卡。如果你使用的是新管理门户,则单击你的订阅下的相应服务器。在右窗格中提供了“添加”“更新”“删除”按钮,以便管理服务器级防火墙规则。如果服务器级防火墙规则和按钮不可见,请单击“防火墙规则”按钮来切换服务器级防火墙规则视图。

管理门户还允许你删除服务器级防火墙设置。有关管理服务器级防火墙设置的详细信息,请参阅How to: Prepare the SQL Azure Firewall

如果要有选择地允许特定客户端访问某些用户数据库,你还可以创建数据库级防火墙规则。要创建数据库级规则,请参阅How To: Configure the Database-Level Firewall Settings

在你使用管理门户创建了启用与 Azure SQL Database 服务器的连接的服务器级防火墙设置后,可以使用服务器级别主体登录名和 master 数据库来查看和编辑你的服务器级防火墙设置。在 master 数据库中,防火墙设置称作“规则”。sys.firewall_rules 视图显示当前防火墙设置,而 sp_set_firewall_rulesp_delete_firewall_rule 存储过程允许你更改这些防火墙设置。有关详细信息,请参阅sys.firewall_rules (Azure SQL Database)sp_set_firewall_rule (Azure SQL Database)sp_delete_firewall_rule (Azure SQL Database)

同样,在创建数据库级防火墙设置后,可以登录到 master 或用户数据库来查看相应数据库的数据库级防火墙设置。每个数据库中的 sys.database_firewall_rules 视图显示当前数据库级防火墙设置,而 sp_set_database_firewall_rulesp_delete_database_firewall_rule 存储过程允许你更改这些防火墙设置。有关详细信息,请参阅sys.database_firewall_rules (Azure SQL Database)sp_set_database_firewall_rule (Azure SQL Database)sp_delete_database_firewall_rule (Azure SQL Database)

note备注
对防火墙设置的更改最多需要 5 分钟的延迟即可生效。

在对 Microsoft Azure SQL Database 服务的访问与你的期望不符时,请考虑以下几点:

  • Local firewall configuration:在你的计算机可以访问 Azure SQL Database 之前,可能需要在你的计算机上创建针对 TCP 端口 1433 的防火墙例外。

  • 网络地址转换 (NAT):由于 NAT 的原因,计算机用来连接到 Azure SQL Database 的 IP 地址可能不同于计算机 IP 配置设置中显示的 IP 地址。若要查看所使用的 IP 地址,请使用该计算机连接到管理门户,然后单击“防火墙设置”选项卡。在你单击“添加规则”“编辑规则”时,你的 IP 地址将显示在标签为“你的 IP 地址为”的对话框中。

  • 对允许列表的更改尚未生效:对 Azure SQL Database 防火墙配置所做的更改可能最多需要 5 分钟的延迟即可生效。

  • The login is not authorized or an incorrect password was used:如果某个登录名对 Azure SQL Database 服务器没有权限或者使用的密码不正确,则与 Azure SQL Database 服务器的连接将被拒绝。创建防火墙设置仅向客户端提供尝试连接到你的 Azure SQL Database 服务器的机会;每个客户端必须提供必需的安全凭据。有关准备登录名的详细信息,请参阅在 Azure SQL Database 中管理数据库和登录名

  • 动态 IP 地址:如果你的 Internet 连接使用动态 IP 寻址,并且你在通过 SQL Database 防火墙时遇到问题,则可以尝试以下解决方法之一:

    • 向你的 Internet 服务提供商 (ISP) 询问分配给你的客户端计算机的将用来访问 SQL Database 服务器的 IP 地址范围,然后将该 IP 地址范围作为 SQL Database 防火墙规则添加。

    • 改为获取你的客户端计算机的静态 IP 地址,然后将该 IP 地址作为 SQL Database 防火墙规则添加。

另请参阅

显示:
© 2014 Microsoft