Microsoft Defender for Cloud 中的经典配置漏洞发现

重要

注意:根据世纪互联发布的公告,Azure 中国区将于2026年10月1日正式停止提供所有 Microsoft Defender for Cloud 功能。

本文将向您展示如何在使用Microsoft Defender for Cloud经典配置时查看、修复和禁用SQL漏洞评估结果。 您可以使用PowerShell、Azure CLI或资源管理器模板,查看扫描历史、禁用特定发现,并以程序管理漏洞评估。 关于漏洞评估的概述,请参见 SQL漏洞评估。

重要

用于经典漏洞评估配置的 API 将于 2026 年 10 月 1 日 停用,经典 Defender for SQL 高级威胁防护 API 也将同时停用。

重要

Express Configuration 现已适用于 Azure SQL 托管实例 和 Azure Synapse Analytics Workspaces。 快速配置扩展了Azure管理的Azure SQL 数据库设置,无需额外费用。

Express 配置允许你在没有存储账户的情况下启用 SQL VA。 快速配置是推荐的模式。 它提供与经典配置相同的安全价值,但设置更简单。

统一的 REST API(v2026-04-01-preview)用于管理 Azure SQL 数据库、SQL 托管实例、Synapse Workspaces 以及计算机上的 SQL(Azure VM 和已启用 Arc 的 SQL)中的 SQL VA。

先决条件

首先,检查你使用的是 Express还是Classic配置。

要找到你的配置类型:

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

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

  3. 在 启用状态中,选择 配置 以打开服务器或托管实例的SQL设置。

如果你看到设置存储账户的选项,就用经典配置。 如果你没看到存储账户选项,就用Express配置。

查看扫描历史记录

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

以编程方式管理漏洞评估

您可以使用 Azure PowerShell、Azure CLI 或 资源管理器 模板,以编程方式管理漏洞评估。

使用 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 SQL vulnerability assessment PowerShell support。

使用 Azure CLI 管理漏洞评估

重要

az security va sql命令组使用统一的 Microsoft 安全 SQL 漏洞评估 API。 使用资源 ID 以 Azure SQL 数据库、Azure SQL 托管实例、Azure Synapse Analytics、Azure Virtual Machines 上的 SQL Server 或已启用 Arc 的 SQL Server 为目标。 对于服务器级资源,也在需要时指定数据库名称。

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

链接形式的命令名称 DESCRIPTION
az security va sql baseline delete 删除 SQL 漏洞评估规则基线。
az security va sql baseline list 查看所有规则的 SQL 漏洞评估基线。
az security va sql baseline add 根据最新扫描或以 JSON 形式提供的结果设置基线。 该操作取代了现有的基线。 已弃用的 baseline set 命令会重定向到此操作。
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。

以下 ARM 模板片段定义了 master 和 user 数据库中规则 VA2065 和 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")设置基线结果。 以下示例展示了使用规则VA1143二进制值的基线资源:

   {
      "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"
               ]
            }
         ]
      }
   }