如果在计算机上启用 Defender for SQL Server 且某些 SQL 实例未处于受保护状态,请使用本文对部署问题进行故障排除。
在开始故障排除步骤之前,请确保满足以下条件:
步骤 1:了解如何创建资源
计算机上的 Defender for SQL Server 会自动创建资源,如图所示。
表中汇总了资源:
资源类型 | 已创建级别 |
---|---|
资源组 - 在中国北部 Azure 区域创建 | 订阅级别 |
托管标识 - 在每个 Azure 区域中创建用户分配的托管标识 | 订阅级别 |
Log Analytics 工作区 - 使用默认工作区或自定义工作区。 | 订阅级别 |
数据收集规则 (DCR) - 为每个工作区创建 | 订阅级别 |
数据收集规则关联 (DCRA) | 在每个 SQL Server 实例上定义 |
Azure Monitoring Agent (AMA) | 扩展安装在每个 SQL Server 实例上 |
Defender for SQL 扩展 | 扩展安装在每个 SQL Server 实例上 |
步骤 2:确保允许扩展
若要确保保护按预期工作,请确保组织拒绝策略不会阻止以下扩展:
- Defender for SQL(IaaS 和 Arc)
- 发布者:Microsoft.Azure.AzureDefenderForSQL
- 类型:AdvancedThreatProtection.Windows
- SQL IaaS 扩展 (IaaS)
- 发布者:Microsoft.SqlServer.Management
- 类型:SqlIaaSAgent
- SQL IaaS 扩展 (Arc)
- 发布者:Microsoft.AzureData
- 类型:WindowsAgent.SqlServer
- AMA 扩展(IaaS 和 Arc)
- 发布者:Microsoft.Azure.Monitor
- 类型:AzureMonitorWindowsAgent
步骤 3:确保中国北区被允许
启用计划时,Azure 将在中国北部区域创建资源组。 确保没有拒绝策略阻止此区域。
步骤 4:验证资源命名约定
计算机上的 Defender for SQL Server 对资源使用特定的命名约定。 确保组织不会阻止这些命名约定,也不会修改任何自动创建的资源。
- DCR:
MicrosoftDefenderForSQL--dcr
- DCRA:
/Microsoft.Insights/MicrosoftDefenderForSQL-RulesAssociation
- 资源组:
DefaultResourceGroup-
- Log Analytics 工作区:
D4SQL--
Defender for SQL 使用 MicrosoftDefenderForSQL 作为 createdBy 数据库标记。
步骤 5:识别订阅级别的错误配置
若要识别哪些订阅存在配置错误,请使用机器上的 SQL 服务器 AMA 助手工作簿。
在“订阅概述”中,查看订阅级别的错误配置。
- Azure 虚拟机上的 SQL Server - 显示包含 Azure 虚拟机的订阅。
- 支持 Arc 的 SQL Server - 显示包含支持 Azure Arc 的虚拟机的订阅。
订阅会根据你的特定环境显示在这些选项卡上。
查看每个订阅的组件配置。
- 订阅中的 SQL Server 实例数。
- 安装了 Defender for SQL 扩展的实例。
- 安装了 AMA 扩展的实例。
- 为订阅中的每个工作区创建的 DCR(在所有区域中)。
- 为每个 SQL 实例创建的 DCRA。
- 在订阅级别为每个区域创建的托管标识。
- 在订阅级别上为每个区域创建的 Log Analytics 工作区。
- 为订阅启用 AMA 自动预配。
- 为订阅启用 Defender for SQL。
对于每个订阅,请检查哪个组件与预期的配置不匹配,例如 0/1、10/15 或 No。 在我们的示例屏幕截图中,演示订阅在 DCRA 0/1 中存在配置错误的问题。
找到配置错误的订阅后,请先在订阅级别解析错误配置,然后在资源级别和扩展安装级别解决错误配置。
步骤 6:解决订阅级别的错误配置
找到错误配置后,首先解决 DCR 问题,然后是工作区问题,最后在订阅级别解决身份问题。
按正确的顺序修复错误配置。 DCR 问题的解决依赖于工作区问题的解决,而工作区问题的解决依赖于标识问题的解决。 如果尝试不按顺序解决这些错误配置,则无法解决。
导航到策略>符合性。
选择“范围”。
在“范围”中,选择相关的订阅。
在“符合性”页面上,根据工作区配置选择策略:
- 默认工作区:SQL 虚拟机上的 Defender for SQL 和已启用 Arc 的 SQL Server。
- 自定义工作区:SQL 虚拟机上的 Defender for SQL 和已启用 Arc 的 SQL Server - 自定义。
按以下顺序搜索并解决每个不合规问题:标识,>工作区,>DCR。
如下所示修复每个问题:
- 标识 -
Create and assign a built-in user-assigned managed identity
. - 工作区 -
Configure the Microsoft Defender for SQL Log Analytics workspace
。 - DCR -
Configure SQL Virtual Machines to automatically install Microsoft Defender for SQL and DCR with a Log Analytics workspace
或Configure Arc-enabled SQL Servers to automatically install Microsoft Defender for SQL and DCR with a Log Analytics workspace
。
- 标识 -
对于不符合的每个策略,请查看符合性原因,并选择“创建修正任务”解决此问题。
填写相关信息。
选择“修正”。
针对每个不合规的策略和订阅重复这些步骤。
使用 PowerShell 部署脚本输入自定义值
如果无法通过工作簿解决订阅问题,Defender for SQL Servers on Machines 会提供一个 PowerShell 部署脚本,可让你输入自己的工作区、DCR 和用户标识的值。 若要使用 PowerShell 脚本,请按照本页上的说明进行操作。
步骤 7:解决资源级别的错误配置
在订阅级别解决错误配置后,请在资源级别解决错误配置,包括 DCRA 配置错误,以及不完整的 AMA 或 Defender for SQL 扩展部署。
排查扩展配置错误问题
在 Azure 门户中,导航到策略>符合性。
选择“范围”。
在下拉列表中,选择存在配置错误的订阅。
搜索并选择“SQL 虚拟机上的 Defender for SQL 和已启用 Arc 的 SQL Server 计划”。
选择不合规的策略名称。
- Defender for SQL 扩展 -
Create and assign a built-in user-assigned managed identity
。 - AMA 扩展:-
Configure SQL Virtual Machines to automatically install Azure Monitor Agent
或Configure Arc-enabled SQL Servers to automatically install Azure Monitor Agent
。
- Defender for SQL 扩展 -
对于不符合的每个策略,请查看符合性原因,并选择“创建修正任务”解决此问题。
排查 DCRA 配置错误
在 Azure 门户中,搜索并选择数据收集规则。
选择“订阅等于”> 选择相关订阅。
选择 应用。
找到并选择相关的 DCR。 DCR 命名约定遵循以下格式:
MicrosoftDefenderForSQL-region-dcr
。选择“配置”>“资源”。
选择“+ 添加”。
在“资源类型”下拉列表中,选择“计算机 - Azure Arc”,并根据部署选择“虚拟机”。
展开每个资源组并选择每台计算机。
选择 应用。
步骤 8:重新验证保护状态
完成此页上的所有步骤后,重新验证每个 SQL Server 实例的保护状态。