经典配置漏洞发现

重要

注意:所有Microsoft Defender for Cloud功能将在2026年8月18日于中国地区的Azure正式停用,依据由世纪互联发布的公告

Microsoft Defender for Cloud为Azure SQL数据库提供漏洞评估。 扫描可识别软件漏洞并返回结果。 可以修正漏洞,或者在需要时禁用发现。

重要

Express Configuration 通常用于Azure SQL 托管实例和Azure Synapse Analytics工作区。 这将扩展Azure SQL 数据库的正式版Azure托管体验,无需额外付费。

此版本允许在不配置客户管理的存储帐户的情况下启用 SQL VA。 快速配置是推荐的启用模式,提供与经典配置相同的安全值,并提供简化的设置。

统一的 REST API(v2026-04-01-preview)可在 Azure SQL 数据库、SQL 托管实例、Synapse 工作区以及计算机上的 SQL(Azure VM 和启用 Arc 的 SQL)中统一管理 SQL 漏洞评估。

先决条件

在继续之前,请确认使用的是 快速配置模型还是经典配置模型

若要确定配置,请执行以下操作:

  1. Azure 门户中,在Azure SQL 数据库、Azure SQL 托管实例或Azure Synapse中打开特定资源。

  2. 在“安全性”下,选择“Defender for Cloud”

  3. Enablement Status中,选择Configure以打开 Microsoft Defender for SQL 的设置,该设置适用于整个服务器或托管实例。

如果漏洞设置显示用于配置存储帐户的选项,则你使用的是经典配置。 否则,你使用的是快速配置。

查看扫描历史记录

在漏洞评估窗格中选择 “扫描历史记录 ”以查看以前对数据库运行扫描。

禁用或忽略 Microsoft Defender for Cloud 中的特定安全发现(预览版)

如果需要忽略查找结果而不是修正它,可以将其禁用。 禁用发现结果不会影响安全功能分数,也不会产生噪音。

当发现结果与禁用规则条件匹配时,它不会显示在发现结果列表中。 典型方案可能包括:

  • 禁用严重性中等或更低的发现结果。
  • 禁用不可修补的发现结果。
  • 禁用与特定范围无关的基准检查结果。

重要

  • 禁用的发现结果仍会包含在每周 SQL 漏洞评估电子邮件报告中。
  • 禁用的规则显示在扫描结果的“不适用”部分中。

禁用规则

Defender for Cloud 提供了禁用特定发现结果的方法。

禁用规则:

  1. 登录到 Azure 门户

  2. 导航到 Microsoft Defender for Cloud>Recommendations

  3. 搜索并选择“应修正关于计算机上 SQL 服务器的漏洞评估结果”

  4. 选择 禁用规则

  5. 选择范围。

  6. 定义条件。 可使用以下条件:

    • 正在查找 ID
    • 严重程度
    • 基准

    显示 SQL 漏洞评估发现的禁用规则创建表单的屏幕截图,其中包含“发现 ID”、“严重性”和“基准”筛选选项。

  7. 选择 应用规则

更改可能需要 24 小时才能生效。

查看、替代或删除规则

若要查看、替代或删除规则,请执行以下操作:

  1. 选择 禁用规则

  2. 在范围列表中,具有有效规则的订阅显示为“已应用规则”。

    显示规则范围列表的屏幕截图,其中显示了“规则应用状态”和省略号菜单按钮,用于查看或删除现有的禁用规则。

  3. 若要查看或删除规则,请选择省略号菜单(“...”)。

以编程方式管理漏洞评估

Azure PowerShell

注释

本文使用 Azure Az PowerShell 模块,该模块是 PowerShell 模块,用于与Azure交互。 若要开始使用 Az PowerShell 模块,请参阅 Install Azure PowerShell

可以使用 Azure PowerShell cmdlet 以编程方式管理漏洞评估。 受支持的 cmdlet 如下:

链接形式的 Cmdlet 名称 DESCRIPTION
Clear-AzSqlDatabaseVulnerabilityAssessmentRuleBaseline 清除漏洞评估规则基线。
在使用此 cmdlet 清除基线之前请先设置基线。
Clear-AzSqlDatabaseVulnerabilityAssessmentSetting(清除-AzSQL数据库漏洞评估设置) 清除数据库的漏洞评估设置。
Clear-AzSqlInstanceDatabaseVulnerabilityAssessmentRuleBaseline 清除托管数据库的漏洞评估规则基线。
在使用此 cmdlet 清除基线之前请先设置基线。
Clear-AzSqlInstanceDatabaseVulnerabilityAssessmentSetting 清除托管数据库的漏洞评估设置。
Clear-AzSqlInstanceVulnerabilityAssessmentSetting(清除Azure SQL实例漏洞评估设置) 清除托管实例的漏洞评估设置。
Convert-AzSqlDatabaseVulnerabilityAssessmentScan(转换-AzSql数据库漏洞评估扫描) 将数据库的漏洞评估扫描结果转换为 Excel 文件(导出)。
Convert-AzSqlInstanceDatabaseVulnerabilityAssessmentScan 将托管数据库的漏洞评估扫描结果转换为 Excel 文件(导出)。
Get-AzSqlDatabaseVulnerabilityAssessmentRuleBaseline 获取给定规则的数据库漏洞评估规则基线。
Get-AzSqlInstanceDatabaseVulnerabilityAssessmentRuleBaseline 获取给定规则的托管数据库漏洞评估规则基线。
Get-AzSqlDatabaseVulnerabilityAssessmentScanRecord 获取与给定数据库关联的所有漏洞评估扫描记录。
Get-AzSqlInstanceDatabaseVulnerabilityAssessmentScanRecord 获取与给定托管数据库关联的所有漏洞评估扫描记录。
Get-AzSqlDatabaseVulnerabilityAssessmentSetting 返回数据库的漏洞评估设置。
Get-AzSqlInstanceDatabaseVulnerabilityAssessmentSetting 返回托管数据库的漏洞评估设置。
Set-AzSqlDatabaseVulnerabilityAssessmentRuleBaseline 设置漏洞评估规则基线。
Set-AzSqlInstanceDatabaseVulnerabilityAssessmentRuleBaseline 设置托管数据库的漏洞评估规则基线。
Start-AzSqlDatabaseVulnerabilityAssessmentScan 触发对于数据库的漏洞评估扫描的启动。
Start-AzSqlInstanceDatabaseVulnerabilityAssessmentScan 触发对于托管数据库的漏洞评估扫描的启动。
Update-AzSqlDatabaseVulnerabilityAssessmentSetting 更新数据库的漏洞评估设置。
Update-AzSqlInstanceDatabaseVulnerabilityAssessmentSetting 更新托管数据库的漏洞评估设置。
更新-AzSql实例漏洞评估设置 更新托管实例的漏洞评估设置。

有关脚本示例,请参阅 Azure SQL 漏洞评估 PowerShell 支持

Azure CLI

重要

以下Azure CLI命令适用于托管在 VM 或本地计算机上的 SQL 数据库。 有关Azure SQL数据库的漏洞评估,请参阅Azure门户或 PowerShell 部分。

可以使用Azure CLI命令以编程方式管理漏洞评估。 支持的命令为:

链接形式的命令名称 DESCRIPTION
az security va sql baseline delete 删除 SQL 漏洞评估规则基线。
az security va sql baseline list 查看所有规则的 SQL 漏洞评估基线。
az security va sql baseline set 设置 SQL 漏洞评估基线。 替换当前基线。
az security va sql baseline show 查看 SQL 漏洞评估规则基线。
az security va sql baseline update 更新 SQL 漏洞评估规则基线。 替换当前规则基线。
az security va sql results list 查看所有 SQL 漏洞评估扫描结果。
az security va sql results show 查看 SQL 漏洞评估扫描结果。
az security va sql scans list 列出所有 SQL 漏洞评估扫描摘要。
az security va sql scans show 查看 SQL 漏洞评估扫描摘要。

资源管理器模板

若要使用 Azure 资源管理器 模板配置漏洞评估基线,请使用 Microsoft.Sql/servers/databases/vulnerabilityAssessments/rules/baselines 类型。

在添加基线之前,请确保已启用 vulnerabilityAssessments

以下示例将 master 数据库的基线规则 VA2065 和 user 数据库的 VA1143 定义为资源管理器模板中的资源:

   "resources": [
      {
         "type": "Microsoft.Sql/servers/databases/vulnerabilityAssessments/rules/baselines",
         "apiVersion": "2018-06-01",
         "name": "[concat(parameters('server_name'),'/', parameters('database_name') , '/default/VA2065/master')]",
         "properties": {
            "baselineResults": [
               {
                  "result": [
                     "FirewallRuleName3",
                     "StartIpAddress",
                     "EndIpAddress"
                  ]
               },
               {
                  "result": [
                     "FirewallRuleName4",
                     "62.92.15.68",
                     "62.92.15.68"
                  ]
               }
            ]
         }
      },
      {
         "type": "Microsoft.Sql/servers/databases/vulnerabilityAssessments/rules/baselines",
         "apiVersion": "2018-06-01",
         "name": "[concat(parameters('server_name'),'/', parameters('database_name'), '/default/VA2130/Default')]",
         "dependsOn": [
            "[resourceId('Microsoft.Sql/servers/vulnerabilityAssessments', parameters('server_name'), 'Default')]"
         ],
         "properties": {
            "baselineResults": [
               {
                  "result": [
                     "dbo"
                  ]
               }
            ]
         }
      }
   ]

对于 master 数据库和 user 数据库,资源名称的定义方式不同:

  • Master 数据库 - "name": "[concat(parameters('server_name'),'/', parameters('database_name'), '/default/VA2065/master')]",
  • 用户数据库 - "name": "[concat(parameters('server_name'),'/', parameters('database_name'), '/default/VA2065/default')]",

若要将布尔类型处理为 true/false,请使用二进制输入(例如 "1"/"0")设置基线结果。

   {
      "type": "Microsoft.Sql/servers/databases/vulnerabilityAssessments/rules/baselines",
      "apiVersion": "2018-06-01",
      "name": "[concat(parameters('server_name'),'/', parameters('database_name'), '/default/VA1143/Default')]",
      "dependsOn": [
         "[resourceId('Microsoft.Sql/servers/vulnerabilityAssessments', parameters('server_name'), 'Default')]"
      ],
      "properties": {
         "baselineResults": [
            {
               "result": [
                  "1"
               ]
            }
         ]
      }
   }