如何在Microsoft Defender for Cloud中使用和导出扫描结果

重要

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

使用本文查询漏洞评估结果,并导出 SQL 扫描结果以调查、报告和修正工作流。

查询和导出漏洞评估扫描结果

SQL Defender 的漏洞评估(VA)每周都会扫描你的数据库,并报告发现的配置错误。

所有发现结果都存储在 Azure Resource Graph(ARG)中,它是 Defender for SQL 大部分用户界面体验的主要数据来源。 将发现内容写入 ARG 时,Defender for Cloud使用相关设置(例如禁用的规则或豁免建议)来扩充它们。 因此,ARG 反映了调查结果和建议的有效状态。

本文介绍了使用和导出扫描结果的几种方法。

使用 Defender for Cloud 在 ARG 中查询和导出结果

使用此方法查询来自Defender for Cloud的查找结果,并导出用于报告的结果。

若要使用 Defender for Cloud 和 ARG 查询并导出您的发现

  1. 登录到 Azure 门户

  2. 导航到Microsoft Defender for Cloud>建议

  3. 搜索并选择以下任一项:

    • 对于 Azure SQL 数据库 - SQL databases should have vulnerability findings resolved.

    • 用于计算机上的 SQL 服务器 - SQL servers on machines should have vulnerability findings resolved

  4. 选择 “打开查询”。

  5. 选择以下任一项:

    • 返回受影响的资源的查询 - 返回当前受影响的资源的列表(每个资源的建议状态)。
    • 查询返回安全发现 - 返回所有安全发现的列表(根据每个适用资源汇总的发现和子评估)。

    “建议”页的屏幕截图,其中左上方显示了“打开查询”下拉列表。下拉列表显示两个选项:返回受影响的资源和返回安全结果的查询。

  6. 选择 运行查询

  7. 选择下载为 CSV

这些查询是可编辑的。 可以为特定资源、一组发现或查找状态自定义它们。

在 ARG 中查询和导出结果

如果需要高级查询自定义,请使用此方法直接在 Resource Graph 资源管理器中查询结果。

使用 ARG 查询和导出结果

  1. 登录到 Azure 门户

  2. 导航到 Resource Graph 资源管理器

  3. 编辑并输入以下查询。 将筛选器中的 resourceId 占位符替换为 SQL 数据库的资源 ID:

    securityresources
    | where type =~ "microsoft.security/assessments/subassessments"
    | extend assessmentKey=extract(@"(?i)providers/Microsoft.Security/assessments/([^/]*)", 1, id), subAssessmentId=tostring(properties.id), parentResourceId= extract("(.+)/providers/Microsoft.Security", 1, id)
    | extend resourceIdTemp = iff(properties.resourceDetails.id != "", properties.resourceDetails.id, extract("(.+)/providers/Microsoft.Security", 1, id))
    | extend resourceId = iff(properties.resourceDetails.source =~ "OnPremiseSql", strcat(resourceIdTemp, "/servers/", properties.resourceDetails.serverName, "/databases/" , properties.resourceDetails.databaseName), resourceIdTemp)
    | where resourceId =~ "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Sql/servers/<server-name>/databases/<database-name>"
    | where assessmentKey =~ "82e20e14-edc5-4373-bfc4-f13121257c37"
    | project resourceId,
    subscriptionId,
    assessmentKey,
    subAssessmentId,
    name=properties.displayName,
    description=properties.description,
    severity=properties.status.severity,
    status=properties.status.code,
    cause=properties.status.cause,
    category=properties.category,
    impact=properties.impact,
    remediation=properties.remediation,
    benchmarks=properties.additionalData.benchmarks
    
  4. 选择 运行查询

  5. 选择下载为 CSV

    “Resource Graph 资源管理器”页的屏幕截图,其中突出显示了“运行查询”和“下载为 CSV”控件。

此查询是可编辑的。 可以针对特定资源、一组发现或查找状态对其进行自定义。

从 SQL 数据库打开查询

使用此方法从数据库资源页查询特定 SQL 数据库的漏洞发现。

若要从 SQL 数据库打开查询,请执行以下操作:

  1. 登录到 Azure 门户

  2. 导航到相关的 SQL 数据库。

  3. 转到 安全>Microsoft Defender for Cloud

  4. 选择相关的推荐结果。

  5. 选择 “打开查询”。

    SQL 数据库建议页的屏幕截图,其中选择了“打开查询”按钮。

  6. 选择 运行查询

  7. 选择下载为 CSV

    “Resource Graph 资源管理器”页的屏幕截图,其中突出显示了“运行查询”和“下载为 CSV”控件。

此查询是可编辑的。 可以针对特定资源、一组发现或查找状态对其进行自定义。

使用 Logic Apps 自动发送电子邮件通知

Azure 逻辑应用是一种低代码无代码云服务,可自动执行工作流,并跨云和本地系统集成数据和服务。 可以使用逻辑应用自动执行针对受支持 SQL 版本的漏洞评估发现的报告,并为扫描的服务器发送每周报告摘要。 还可以自定义计划,例如每日、每周或每月和报表范围,例如数据库、服务器或资源组。

若要使用示例模板自动执行通知,请遵循 SQL 漏洞报告的逻辑应用电子邮件通知模板

此示例逻辑应用模板自动执行每周电子邮件报告,该报告汇总了所选服务器列表中的每个数据库的漏洞扫描结果。 部署模板后,必须授权 Microsoft 365 连接器生成有效的访问令牌以对凭据进行身份验证。

收件人会收到包含扫描结果结果的电子邮件。

示例电子邮件 Azure SQL Server:

来自服务器的示例电子邮件漏洞评估报告的屏幕截图。

SQL VM 示例电子邮件:

示例 SQL 虚拟机结果电子邮件的屏幕截图。

导出扫描结果的其他方法

可以使用 工作流自动化 根据对建议状态的更改触发动作。

还可以启用 连续导出 以在生成警报和建议时流式传输警报和建议,或定义计划以发送所有新数据的定期快照。

后续步骤