sp_set_database_firewall_rule(Azure SQL 数据库)

适用于:Azure SQL 数据库

为Azure SQL 数据库创建或更新数据库级防火墙规则。 可以为 master 数据库以及 SQL 数据库上的用户数据库配置数据库防火墙规则。 使用包含的数据库用户时,数据库防火墙规则非常有用。 有关详细信息,请参阅 使用包含的数据库使数据库可移植。

语法

sp_set_database_firewall_rule
    [ @name = ] N'name'
    , [ @start_ip_address = ] 'start_ip_address'
    , [ @end_ip_address = ] 'end_ip_address'
[ ; ]

参数

[ @name = ] N'name'

用来描述和区分数据库级防火墙设置的名称。 @name为 nvarchar(128),没有默认值。

[ @start_ip_address = ] 'start_ip_address'

数据库级防火墙设置范围内的最低 IP 地址。 等于或大于此值的 IP 地址可以尝试连接到SQL 数据库实例。 可能的最低 IP 地址为 0.0.0.0@start_ip_address为 varchar(50),没有默认值。

[ @end_ip_address = ] 'end_ip_address'

数据库级防火墙设置范围内的最高 IP 地址。 等于或小于此值的 IP 地址可以尝试连接到SQL 数据库实例。 可能的最高 IP 地址为 255.255.255.255@end_ip_address是 varchar(50),没有默认值。

下表演示了SQL 数据库中支持的参数和选项。

注意

当此字段和 @start_ip_address 字段相等 0.0.0.0时,允许 Azure 连接尝试。

注解

数据库的数据库级防火墙设置的名称必须是唯一的。 如果为存储过程提供的数据库级防火墙设置的名称已存在于数据库级防火墙设置表中,则会更新起始和结束 IP 地址。 否则,将创建新的数据库级防火墙设置。

添加一个数据库级防火墙设置,其中起始和结束 IP 地址相等0.0.0.0时,可以从任何 Azure 资源启用对 SQL 数据库 服务器中的数据库的访问权限。 为@name参数提供一个值,以帮助记住防火墙设置的用途。

权限

需要对数据库拥有 CONTROL 权限。

示例

以下代码创建一个数据库级防火墙设置,该设置可用于 Allow Azure 从 Azure 访问数据库。

EXECUTE sp_set_database_firewall_rule N'Allow Azure', '0.0.0.0', '0.0.0.0';

以下代码仅为 IP 地址 Example DB Setting 1 创建一个称为 0.0.0.4 的数据库级防火墙设置。 然后,再次调用 sp_set_database firewall_rule 存储过程,以允许在该防火墙设置中将结束 IP 地址更新为 0.0.0.6。 此示例创建允许 IP 地址0.0.0.40.0.0.50.0.0.6和访问数据库的范围。

  • 仅为 IP 0.0.0.4 创建数据库级防火墙设置:

    EXECUTE sp_set_database_firewall_rule N'Example DB Setting 1', '0.0.0.4', '0.0.0.4';
    
  • 更新数据库级防火墙设置以创建允许的 IP 地址范围:

    EXECUTE sp_set_database_firewall_rule N'Example DB Setting 1', '0.0.0.4', '0.0.0.6';