You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用sp_delete_database_firewall_rule删除灰色Azure SQL防火墙规则失败

Azure SQL灰色防火墙规则TSQL删除无效的问题排查与解决

核心错误:混淆服务器级与数据库级防火墙规则的操作对象

你操作时的关键问题是搞混了两类防火墙规则对应的操作存储过程:

  • 从sys.firewall_rules查询到的是服务器级防火墙规则,也就是你在门户里看到的灰色规则,但你误用了仅针对数据库级规则的sys.sp_delete_database_firewall_rule存储过程,这个操作只对sys.database_firewall_rules视图里的数据库级规则生效,所以第一次删除会显示(0 rows affected),完全没触达目标规则。
  • 后续执行sys.sp_set_database_firewall_rule是创建/修改数据库级规则,和你要处理的服务器级灰色规则无关,即便删除这个新建的数据库级规则,也不会改变门户里服务器级规则的状态。

正确操作步骤

  1. 确认目标规则归属:执行以下语句确认规则是服务器级:

    SELECT name, start_ip_address, end_ip_address FROM sys.firewall_rules;
    

    该视图返回的就是Azure门户中显示的服务器级防火墙规则,包括灰色状态的规则。

  2. 执行正确的删除语句:使用服务器级规则的删除存储过程,替换规则名称后执行:

    EXECUTE sys.sp_delete_firewall_rule N'你的灰色规则名称';
    
  3. 验证删除结果:重新查询sys.firewall_rules确认目标规则已移除,之后刷新Azure门户的SQL服务器网络设置页面,灰色规则会同步消失。

补充说明

  • 门户中灰色的服务器级防火墙规则多为系统自动生成(如允许Azure服务访问的规则)或自动化部署的规则,无法在门户直接操作,必须通过服务器级TSQL命令处理。
  • 服务器级与数据库级防火墙规则是独立的两套配置,对应不同的系统视图和存储过程,操作时务必匹配对应层级的工具。

内容的提问来源于stack exchange,提问作者DinahMoeHumm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 02:22:41