重要
本文适用于商业云。 如果您使用的是由世纪互联运营的 Microsoft Azure,请参阅 有关 SQL Defender 在计算机上的配置故障排除的政府版 文章。
在开始故障排除步骤之前,必须在订阅或 SQL 资源级别的计算机上启用 Defender for SQL Server。
计算机上的 Defender for SQL Server 会自动在计算机上创建以下资源:
资源类型 | 已创建级别 |
---|---|
系统托管标识(仅当用户定义的托管标识不存在时创建) | 托管 SQL Server 实例的虚拟机/已启用 Arc 的服务器 |
Defender for SQL 扩展 | 扩展安装在托管 SQL Server 实例的每个虚拟机/已启用 Arc 的服务器上 |
在订阅或指定的 SQL Server 上启用 Defender for SQL Server 时,它会执行以下作来保护每个 SQL Server 实例:
- 如果订阅中没有用户托管标识,则创建系统托管标识。
- 在托管 SQL Server 的虚拟机/已启用 Arc 的服务器上安装 Defender for SQL 扩展。
- 模拟运行 SQL Server 服务(默认 sysadmin 角色)的 Windows 用户以访问 SQL Server 实例。
订阅权限:若要在订阅(包括 Azure Policy)上部署计划,需要 订阅所有者 权限。
SQL Server 实例权限:SQL Server 服务帐户必须在每个 SQL Server 实例上具有 sysadmin 固定服务器角色,这是默认设置。 详细了解 SQL Server 服务帐户要求。
支持的资源:
通信:允许使用传输层安全性(TLS)通过传输控制协议(TCP)端口 443 的出站 HTTPS 流量发到 *.<region>.arcdataservices.com
URL。 详细了解 URL 要求。
扩展:确保这些扩展在您的环境中未被阻止。 详细了解如何在 Windows VM 上限制扩展安装。
-
Defender for SQL (IaaS 和 Arc)
- 发布者:Microsoft.Azure.AzureDefenderForSQL
- 类型:AdvancedThreatProtection.Windows
-
SQL IaaS 扩展 (IaaS)
- 发布者:Microsoft.SqlServer.Management
- 类型:SqlIaaSAgent
-
SQL IaaS 扩展 (Arc)
- 发布者:Microsoft.AzureData
- 类型:WindowsAgent.SqlServer
-
Defender for SQL (IaaS 和 Arc)
支持的 SQL Server 版本 - SQL Server 2012 R2 (11.x) 及更高版本。
支持的作系统 - SQL Server 2012 R2 及更高版本。
按照 验证过程 确定 SQL Server 实例上的保护配置错误。
该建议 The status of Microsoft SQL Servers on Machines should be protected
可用于验证 SQL Server 的保护状态,但应在资源级别修正该建议。 任何未受保护的 SQL Server 在建议的不正常资源部分中标识,其中列出了保护状态和原因。
重要
建议仅每 12 小时更新一次。 若要检查计算机的实时状态,必须 验证每个 SQL Server 的保护状态 ,并在必要时执行任何故障排除。
使用相应的不健康原因和建议的措施来解决配置错误。
不健康的原因 | 建议的措施 |
---|---|
缺少身份 | 将用户定义的/系统定义的托管标识分配给托管 SQL Server 实例的虚拟机/已启用 Arc 的服务器。 不需要基于角色的访问控制权限。 |
Defender for SQL 扩展不存在 | 确保 Defender for SQL 扩展不受 Azure 拒绝策略 的阻止。 - 发布者:Microsoft.Azure.AzureDefenderForSQL - 类型:高级威胁防护.Windows 通过使用提供的脚本托管 SQL Server 实例,在虚拟机上手动安装 Defender for SQL 扩展。 确保版本为 2.X 或更高版本。 1.运行此脚本 Set-AzVMExtension -Publisher 'Microsoft.Azure.AzureDefenderForSQL' -ExtensionType 'AdvancedThreatProtection.Windows' -ResourceGroupName 'resourceGroupeName' -VMName <Vm name> -Name 'Microsoft.Azure.AzureDefenderForSQL.AdvancedThreatProtection.Windows' -TypeHandlerVersion '2.0' -Location 'vmLocation' -EnableAutomaticUpgrade $true 2.运行此脚本以设置正确的订阅的上下文: connect-AzAccount -Subscription SubscriptionId -UseDeviceAuthentication |
Defender for SQL 扩展应为 up-to-date | 请在虚拟机或启用了 Arc 的服务器资源的“扩展”页面中更新扩展。 |
安装 Defender for SQL 扩展期间出错 | 在门户中检查 Defender for SQL 扩展状态,以获取排查问题的额外信息。 |
SQL Server 实例处于非活动状态 | 计算机上的 Defender for SQL Server 只能保护活动(正在运行)SQL Server 实例。 |
权限不足 | 确保 SQL Server 服务帐户是每个 SQL Server 实例上 sysadmin 固定服务器角色的成员(默认设置)。 详细了解 SQL Server 服务权限。 |
缺乏沟通 | 确保允许使用传输层安全性(TLS)的 TCP 端口 443 上的出站 HTTPS 流量从已启用虚拟机/Arc 的服务器发到 *.<region>.arcdataservices.com URL。 详细了解 URL 要求 |
需要 SQL Server 重启 | 重启 SQL Server 实例,使 Defender for SQL Server 安装生效。 |
内部错误 | 请联系支持人员。 |
如果在同一虚拟机上安装多个 SQL Server 实例,则建议 The status of Microsoft SQL Servers on Machines should be protected
不能区分实例。 若要将错误消息与相应的 SQL Server 实例相关联,请检查 Defender for SQL 扩展下的错误消息。 Defender for SQL 扩展可以显示每个实例的以下原因:
- 重启 SQL Server
- 检查权限
- 确保 SQL Server 实例处于活动状态
根据 列出的不正常原因,采取相应的作 来修正问题。
完成每个 SQL Server 实例的所有错误的修正后, 将每个 SQL Server 实例的保护状态统一起来。