通过


你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Windows SQL Server IaaS 代理扩展实现自动管理

适用于:Azure VM 上的 SQL Server

SQL Server IaaS 代理扩展 (SqlIaasExtension) 在 Azure Windows 虚拟机 (VM) 上的 SQL Server 上运行,以自动执行管理和管理任务。

本文将提供该扩展的概述。 若要将 SQL Server IaaS 代理扩展安装到 Azure VM 上的 SQL Server,请参阅有关自动注册注册单个 VM批量注册 VM 的文章。

警告

不支持将 tempdb 放置在 Azure VM 映像的未初始化临时磁盘(例如 FXmdsv2)上。 此问题仅影响具有具有本地临时存储的新 NVMe 接口的 Azure 虚拟机。 通过 Azure 门户进行这些部署可能会失败,SQL Server 可能无法启动。 在通过 Azure 门户部署 SQL Server 映像时以及手动安装 SQL Server 时,请使用其他 VM 系列,或放置在 tempdb 非临时存储上。 若要详细了解此问题,并查看受影响的 VM 的列表,请查看 VM 部署和 SQL Server 故障

若要详细了解 Azure VM 上的 SQL Server 部署和管理体验,请观看以下“公开的数据”视频:

注意

现在,可以使用 SQL Server 实例 资源查看 Azure VM 实例和 Azure 门户中的数据库上的单个 SQL Server。 若要了解详细信息,请参阅统一清单(预览版)。

概述

SQL Server IaaS 代理扩展与 Azure 门户集成,并为 Azure VM 上的 SQL Server 解锁多个优势:

  • 功能优势:扩展可解锁自动化功能优势,例如门户管理、许可证灵活性、自动备份、自动修补等。 有关详细信息,请参阅 功能优势

  • 符合性:该扩展提供了一种简化的方法,用于满足通知Microsoft启用 Azure 混合权益的要求,如产品条款中所述。 此过程否定了管理每个资源的许可注册表单的必要性。

  • 免费:扩展是免费的。 使用该扩展不会产生相关的额外费用。

  • 与集中管理的 Azure 混合权益集成:注册到扩展的 SQL Server VM 可以与 集中管理的 Azure 混合权益集成,因此可以轻松大规模管理 SQL Server VM 的 Azure 混合权益。

  • 简化的许可证管理:扩展简化了 SQL Server 许可证管理,可以使用以下命令快速识别启用了 Azure 混合权益的 SQL Server VM:

    使用 Azure 门户中的 SQL 虚拟机资源 快速识别使用 Azure 混合权益的 SQL Server VM。

启用 自动升级 ,以确保每月获取扩展的最新更新。

功能优势

SQL Server IaaS 代理扩展为管理 SQL Server VM 提供了多项功能优势。 可以选择最适合业务需求的优势。 首次向扩展注册时,可以访问不依赖于 SQL IaaS 代理的功能。 启用需要代理的功能时,代理安装在 SQL Server VM 上。

下表列出了可以通过 SQL IaaS 代理扩展获取的优势,以及每个权益是否需要代理:

功能 说明
Azure 门户管理 解锁门户中的管理,以便可以在一个位置查看所有 SQL Server VM,并直接在门户中启用或禁用 SQL 特定的功能。

包含在基本注册中。
自动备份 对 VM 中的 SQL Server 默认实例或已正确安装的命名实例自动执行所有数据库的备份计划。 有关详细信息,请参阅 Azure 虚拟机中 SQL Server 的自动备份 (Resource Manager)

需要 SQL IaaS 代理扩展。
自动修补 在配置的维护时段内自动将 Windows 和 SQL Server 安全更新(包括 SQL Server 的累积更新)安装到虚拟机,以避免在工作负载高峰期进行更新。 有关详细信息,请参阅通过 Azure 更新管理器自动修补

需要 SQL IaaS 代理扩展。
Azure 密钥保管库集成 可让你在 SQL Server VM 上自动安装和配置 Azure 密钥保管库。 有关详细信息,请参阅 为 Azure 虚拟机上的 SQL Server 配置 Azure 密钥保管库集成 (Resource Manager)

需要 SQL IaaS 代理扩展。
配置 tempdb 可以直接通过 Azure 门户配置 tempdb,例如指定文件数、其初始大小、位置以及自动增长比率。 重启 SQL Server 服务以使更改生效。

需要 SQL IaaS 代理扩展。
Defender for Cloud 门户集成 如果已启用 Microsoft Defender for SQL,则可直接在 Azure 门户的 SQL 虚拟机资源中查看 Defender for Cloud 建议。 有关详细信息,请参阅安全最佳做法

需要 SQL IaaS 代理扩展。
扩展的安全更新 自动接收 Azure VM 上的 SQL Server 安全更新,在延长的 SQL Server 生命周期支持结束后最多可持续三年。
灵活许可 通过从 Azure 混合权益 无缝过渡 到即用即付许可模型并重新转换,从而节省成本。

包含在基本注册中。
灵活的发行版本/产品版本 如果你决定更改 SQL Server 的发行版本产品版本,可以在 Azure 门户中更新元数据,而无需重新部署整个 SQL Server VM。

包含在基本注册中。
I/O 分析 在 Azure 门户中查看 I/O 性能的分析,以查找因超出虚拟机和数据磁盘限制而导致的问题。 此功能目前以预览版提供。

需要 SQL IaaS 代理扩展。
Microsoft Entra 身份验证 使用 Microsoft Entra ID 对 SQL Server VM 进行身份验证,以增强 SQL Server VM 的安全性。

需要 SQL IaaS 代理扩展。
SQL 最佳做法评估 使你可以使用配置最佳做法评估 SQL Server VM 的运行状况。 有关详细信息,请参阅 SQL 最佳做法评估

需要 SQL IaaS 代理扩展。
在门户中查看磁盘使用率 可让你在 Azure 门户中查看 SQL 数据文件的磁盘使用率的图形表示形式。

需要 SQL IaaS 代理扩展。

权限模型

默认情况下,SQL IaaS 代理扩展使用最小特权模式权限模型。 最小特权权限模型为启用的每个功能授予所需的最小权限。 使用的每个功能都会在 SQL Server 中分配一个自定义角色,并且自定义角色仅具有执行与该功能相关的操作所需的权限。

下表定义了扩展的每个功能使用的 SQL Server 权限和自定义角色:

功能 权限 自定义角色(服务器/数据库)
自动备份 服务器权限 – CONTROL SERVER
数据库权限 - 对 db_ddladminmaster、对 db_backupoperatormsdb
SqlIaaSExtension_AutoBackup
可用性组门户管理 sysadmin
Azure 备份服务 sysadmin 分配给帐户 NT SERVICE\AzureWLBackupPluginSvc
凭据管理 服务器权限 - CONTROL SERVER SqlIaaSExtension_CredentialMgmt
I/O 相关的最佳做法 服务器权限 - CONTROL SERVER SqlIaaSExtension_ThrottlingAssessment
SQL 最佳做法评估 服务器权限 - CONTROL SERVER SqlIaaSExtension_Assessment
SQL Server 实例设置 服务器权限 - ALTER ANY LOGIN、ALTER SETTINGS SqlIaaSExtension_SqlInstanceSetting
存储配置 服务器权限 - ALTER ANY DATABASE SqlIaaSExtension_StorageConfig
状态报告 服务器权限 - VIEW ANY DEFINITION、VIEW SERVER STATE、ALTER ANY LOGIN、CONNECT SQL SqlIaaSExtension_StatusReporting

在 2022 年 10 月之前部署的 SQL Server 虚拟机使用较旧的sysadmin模型,其中 SQL IaaS 代理扩展默认获取sysadmin权限。 对于在 2022 年 10 月之前预配的 SQL Server VM,可以手动启用最小特权权限模型

注意

启用最小特权模式的选项仅在 2022 年 10 月之前预配的 SQL Server VM 上可用。 如果此选项在环境中不可见,这是因为 SQL Server VM 默认已启用最低特权模式。

若要启用最低权限权限模型,请转到 SQL 虚拟机资源,在“安全性”下选择“安全配置”,然后选择“启用最低特权模式”复选框:

Azure 门户 SQL 虚拟机资源“安全配置”页的屏幕截图,其中突出显示了“最小特权”。

安装

将 SQL Server VM 注册到 SQL IaaS 代理扩展时,进程会将二进制文件复制到虚拟机,但默认情况下不会安装代理。 仅当启用需要它的某个 SQL IaaS 代理扩展功能 时,代理才会安装。 安装后,以下两个服务在虚拟机上运行:

  • Microsoft SQL Server IaaS 代理 是 SQL IaaS 代理扩展的主要服务。 它在本地 系统 帐户下运行。
  • Microsoft SQL Server IaaS 查询服务 是一种帮助程序服务,可在 SQL Server 中运行查询。 它在 NT 服务 帐户 NT Service\SqlIaaSExtensionQuery下运行。

默认情况下,代理遵循最低特权原则,并且仅在 SQL Server 中具有与启用的功能关联的权限。 但是,如果自行在 VM 上手动安装 SQL Server,或在 2022 年 10 月之前从市场部署 SQL Server 映像,代理在 SQL Server 中具有 sysadmin 权限。

通过 Azure 门户部署 SQL Server VM Azure Marketplace 映像时,该映像会自动向扩展服务注册。 但是,如果选择在 Azure 虚拟机上自行安装 SQL Server,或从自定义 VHD 预配 Azure 虚拟机,则必须将 SQL Server VM 注册到 SQL IaaS 代理扩展,以解锁功能优势。 默认情况下,使用 SQL Server 2016 或更高版本的自安装 Azure VM 在 CEIP 服务检测到时自动注册到 SQL IaaS 代理扩展。 应手动注册 CEIP 未检测到的 SQL Server VM。

可以使用下列方法之一进行注册:

将 SQL Server VM 注册到 SQL Server IaaS 代理扩展时,会在订阅中创建 SQL 虚拟机资源 。 此资源与虚拟机资源 分开 。 如果从 SQL Server VM 中删除扩展,请从订阅中删除 SQL 虚拟机资源 ,但不要删除基础虚拟机。

多实例支持

SQL IaaS 代理扩展支持下面的环境:

  • 一个默认实例。
  • 多个实例,但 Azure 门户中的扩展仅支持和管理默认实例。 该扩展不支持在没有默认实例的情况下具有多个命名实例的环境。
  • 一个命名实例(如果它是唯一安装的实例)。

命名实例支持

若要在 Azure 门户中管理单个命名实例,请在 Azure 虚拟机上安装具有非默认名称的 SQL Server,然后将其 注册到 SQL IaaS 代理扩展

若要从 Azure 市场管理 SQL Server 映像中的单个命名实例,请卸载现有的 SQL Server 实例,使用命名实例安装 SQL Server,然后将其注册到 SQL IaaS 代理扩展。

若要将单个命名实例与 Azure VM 上的 SQL Server 一起使用,请按照以下步骤进行操作:

  1. 从 Azure 市场部署 SQL Server VM。
  2. 从 SQL Server VM 中删除 SQL IaaS 代理扩展
  3. 连接至虚拟机并完全卸载 SQL Server。
  4. 重启虚拟机。
  5. 连接到虚拟机,然后使用安装媒体(通常位于 C:\SQLServerFull 中)安装命名的 SQL Server 实例
  6. 重启虚拟机。
  7. 将 VM 注册到 SQL IaaS 代理扩展

故障转移群集实例支持

支持注册 SQL Server 故障转移群集实例 (FCI),但功能有限。 由于功能有限,向扩展注册的 SQL Server FCI 不支持需要代理的功能,例如自动备份、修补、Microsoft Entra 身份验证和高级门户管理。

如果将 SQL Server VM 注册到 SQL IaaS 代理扩展并启用任何需要代理的功能,则需要 从 SQL Server VM 中删除该扩展。 然后在安装 FCI 后再次注册它。

验证扩展的状态

使用 Azure 门户、Azure PowerShell 或 Azure CLI 检查扩展的状态。

在 Azure 门户中验证扩展是否已安装。

在 Azure 门户中转到“虚拟机”资源(不是 SQL 虚拟机资源,而是 VM 的资源)。 在“设置”中选择“扩展”。 应会看到列出的 SqlIaasExtension 扩展,如以下屏幕截图所示:

AZURE 门户中 SQL Server IaaS 代理扩展状态的屏幕截图。

管理模式

在 2023 年 3 月之前,SQL IaaS 代理扩展依赖于管理模式来定义安全模型并解锁功能权益。 2023 年 3 月,Microsoft更新扩展体系结构以完全删除管理模式。 相反,它依赖于最低特权原则,以控制你希望按功能使用扩展的方式。

从 2023 年 3 月开始,首次注册扩展时,它会将二进制文件保存到虚拟机,以提供基本功能,如许可证管理。 启用依赖于代理的任何功能时,该扩展使用二进制文件将 SQL IaaS 代理安装到虚拟机。 它还会根据启用的每个功能根据需要向 SQL IaaS 代理服务分配 权限

支持的区域

有限的一组 Azure 区域支持 SQL IaaS 代理扩展。 如果 SQL Server VM 位于受支持的区域中,则只能安装 SQL IaaS 代理扩展。 可以使用 Azure PowerShell 列出 SQL IaaS 代理扩展支持的区域。

以下 Get-AzResourceProvider Azure PowerShell 命令列出了支持的区域:

(Get-AzResourceProvider -ProviderNamespace Microsoft.SqlVirtualMachine).ResourceTypes |
      Where-Object { $_.ResourceTypeName -eq "SqlVirtualMachines" } |
      Select-Object -ExpandProperty Locations

限制

SQL IaaS 代理扩展仅支持:

  • 通过 Azure 资源管理器部署的 SQL Server VM。 它不支持通过经典模型部署的 SQL Server VM。
  • 部署到公有云、Azure 政府云和世纪互联(中国 Azure)的 SQL Server 虚拟机。 它不支持部署到其他私有云或政府云。
  • 一组有限的 Azure 区域。 如果 SQL Server VM 位于受支持的区域中,则只能安装 SQL IaaS 代理扩展。
  • 必须在 SQL Server 配置管理器和虚拟机中启用 TCP/IP,以便扩展能够与 Azure VM 上的 SQL Server 配合使用。
  • SQL Server FCI 的功能有限。 注册到扩展的 SQL Server FCI 不支持需要代理的功能,例如自动备份、修补和高级门户管理。
  • 具有默认实例的虚拟机,或不存在默认实例时具有单个命名实例的虚拟机。
  • 如果 VM 有多个命名实例,则其中一个实例必须是使用 SQL IaaS 代理扩展的默认实例。
  • 仅 SQL Server 实例映像。 SQL IaaS 代理扩展不支持 Reporting Services 或 Analysis 服务,如下图所示:SQL Server Reporting Services、Power BI Report Server、SQL Server Analysis Services。

隐私声明

在 Azure VM 和 SQL IaaS 代理扩展上使用 SQL Server 时,请考虑以下隐私声明:

  • 自动注册:默认情况下,具有 SQL Server 2016 或更高版本的 Azure VM 会在被 CEIP 服务检测到的情况下自动注册到 SQL IaaS 代理扩展。 有关详细信息,请参阅 SQL Server 隐私补充条款

  • 数据收集:SQL IaaS 代理扩展会收集数据,目的只是当客户在 Azure 虚拟机上使用 SQL Server 时为他们提供可选权益。 在未经得客户事先同意的情况下,Microsoft 不会将此数据用于许可审核。 有关详细信息,请参阅 SQL Server 隐私补充条款

  • 区域内数据驻留:Azure VM 上的 SQL Server 和 SQL IaaS 代理扩展不会在部署 VM 的区域之外移动或存储客户数据。

若要将 SQL Server IaaS 扩展安装到 Azure VM 上的 SQL Server,请参阅有关自动安装单一 VM批量 VM 的文章。 有关问题解决,请参阅 排查扩展的已知问题

若要了解详细信息,请参阅以下文章: