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

Azure VM 上的SQL Server

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

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

警告

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

概述

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

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

  • Compliance:此扩展程序提供了一种简化方法,以满足通知 Microsoft 您已启用 Azure Hybrid Benefit 的要求,如产品条款中所指定的。 此过程否定了管理每个资源的许可注册表单的必要性。

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

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

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

    使用 Azure 门户中的 SQL 虚拟机资源快速识别使用Azure Hybrid Benefit的SQL Server VM。

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

功能优势

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

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

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

包含在基本注册中。
自动备份 自动安排 SQL Server 默认实例或在虚拟机 (VM) 上正确安装的命名实例的所有数据库的备份计划。 有关详细信息,请参阅 Azure 虚拟机(资源管理器)中的 SQL Server 自动备份

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

需要 SQL IaaS 代理扩展。
Azure Key Vault集成 使你能够在 SQL Server VM 上自动安装和配置Azure Key Vault。 有关详细信息,请参阅 为 SQL Server on Azure Virtual Machines(资源管理器)配置 Azure 密钥保管库集成

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

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

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

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

包含在基本注册中。
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 Backup Service 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
状态报告 服务器权限 - 查看任何定义、查看服务器状态、更改任何登录、连接 SQL SqlIaaSExtension_StatusReporting

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

注释

仅适用于在 2022 年 10 月之前 预配的 SQL Server 虚拟机的最小特权模式选项。 如果此选项在环境中不可见,这是因为默认情况下,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 门户部署 Azure Marketplace 中的 SQL Server VM 映像时,该映像会自动向扩展程序注册。 但是,如果选择在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 Marketplace管理SQL Server映像中的单个命名实例,请卸载现有的SQL Server实例,使用命名实例安装SQL Server,然后将其注册到 SQL IaaS 代理扩展。

若要在 Azure VM 上使用具有SQL Server的单个命名实例,请执行以下步骤:

  1. 从Azure Marketplace部署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 虚拟机资源,而是您虚拟机的具体资源)。 在“设置”中选择“扩展”。 应会看到列出的 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 代理扩展仅支持:

  • SQL Server VM 通过 Azure Resource Manager 部署。 它不支持通过经典模型部署SQL Server VM。
  • 必须在 SQL Server Configuration Manager 和虚拟机中启用 TCP/IP,以便扩展功能可在 Azure 虚拟机上的 SQL Server 中使用。
  • SQL Server功能有限的 FCI。 SQL Server注册到扩展的 FCI 不支持需要代理的功能,例如自动备份、修补和高级门户管理。
  • 具有默认实例的虚拟机,或不存在默认实例时具有单个命名实例的虚拟机。
  • 如果 VM 有多个命名实例,则其中一个实例必须是使用 SQL IaaS 代理扩展的默认实例。
  • 仅限于 SQL Server 实例映像。 SQL IaaS 代理扩展不支持Reporting Services或Analysis Services,如以下图示: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 隐私补充

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

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

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

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