使用 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 的文章。

概述

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 代理扩展。
自动修补 配置维护时段,可在此时段对 VM 进行重要的 Windows 和 SQL Server 安全更新,从而可以避免在工作负载的高峰期进行更新。 有关详细信息,请参阅 Azure 虚拟机中 SQL Server 的自动修补 (Resource Manager)

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

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

需要 SQL IaaS 代理扩展。
扩展的安全更新 自动接收 Azure VM 上的 SQL Server 安全更新,在延长的 SQL Server 生命周期支持结束后最多可持续三年。
灵活许可 在自带许可(也称为 Azure 混合权益)与即用即付许可模型之间来回无缝转换,从而节省成本。

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

包含在基本注册中。
SQL 最佳做法评估 使你可以使用配置最佳做法评估 SQL Server VM 的运行状况。 有关详细信息,请参阅 SQL 最佳做法评估

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

需要 SQL IaaS 代理扩展。

权限模型

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

在 2022 年 10 月之前部署的 SQL Server VM 使用较旧的 sysadmin 模型,SQL IaaS 代理扩展默认采用 sysadmin 权限。 对于在 2022 年 10 月之前预配的 SQL Server VM,可以通过转到 SQL 虚拟机资源,在“安全性”下选择“安全配置”,然后选中“启用最低特权模式”旁边的复选框来启用最低特权权限模型。

要启用最小特权权限模型,请转到 SQL 虚拟机资源,选择“安全”下的“安全配置”,然后选中“启用最小特权模式”旁边的框:

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

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

Feature 权限 自定义角色(服务器/数据库)
SQL 最佳做法评估 服务器权限 - CONTROL SERVER SqlIaaSExtension_Assessment
自动备份 服务器权限 – CONTROL SERVER
数据库权限 – master 上的 db_ddladminmsdb 上的 db_backupoperator
SqlIaaSExtension_AutoBackup
Azure 备份服务 sysadmin
凭据管理 服务器权限 - CONTROL SERVER SqlIaaSExtension_CredentialMgmt
可用性组门户管理 sysadmin
R Service 服务器权限 - ALTER SETTINGS SqlIaaSExtension_RService
SQL 身份验证 sysadmin
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

安装

将 SQL Server VM 注册到 SQL IaaS 代理扩展时,二进制文件会复制到 VM。 当你启用依赖它的功能后,SQL IaaS 代理扩展会安装到 VM,并有权访问 SQL Server。 默认情况下,代理将遵循最小特权模型,在 SQL Server 内仅拥有与你启用的功能关联的权限,除非你以手动方式将 SQL Server 自行安装到 VM,或在 2022 年 10 月之前部署了来自市场的 SQL Server 映像,在这种情况下,代理在 SQL Server 中具有 sysadmin 权限。

通过 Azure 门户部署 SQL Server VM Azure 市场映像会自动将 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 IaaS 代理扩展注册时,二进制文件将复制到虚拟机,但默认情况下不安装代理。 只有在启用需要代理的 SQL IaaS 代理扩展功能之一时,才会安装代理,然后,以下两个服务将在虚拟机上运行:

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

可通过三种方式注册到扩展:

将 SQL Server VM 注册到 SQL Server IaaS 代理扩展会在订阅(该资源独立于虚拟机资源)中创建 SQL 虚拟机资源。 从 SQL Server VM 中删除扩展会从订阅中移除 SQL 虚拟机资源,但不会删除底层虚拟机。

多实例支持

如果存在默认实例,则 SQL IaaS 代理扩展仅适用于具有多个实例的虚拟机。 将虚拟机注册到 SQL IaaS 代理扩展时,它会注册默认实例,也就是你能够从 Azure 门户管理的实例。

如果不存在默认实例,SQL IaaS 代理扩展就不支持具有多个命名实例的虚拟机。

命名实例支持

如果 SQL Server 的某个命名实例是虚拟机上唯一可用的 SQL Server 实例,则 SQL IaaS 代理扩展可与该实例配合工作。 SQL IaaS 代理扩展不支持具有多个命名实例的 VM。

若要使用 SQL Server 的命名实例,请部署一个 Azure 虚拟机,在它上面安装单个命名 SQL Server 实例,然后将其注册到 SQL IaaS 代理扩展

或者,若要将命名实例与 Azure 市场 SQL Server 映像配合使用,请执行以下步骤:

  1. 从 Azure 市场部署 SQL Server VM。
  2. 从 SQL Server VM 中删除 SQL IaaS 代理扩展
  3. 完全卸载 SQL Server VM 中的 SQL Server。
  4. 重新启动虚拟机。
  5. 使用 SQL Server VM 中的命名实例安装 SQL Server。
  6. 重新启动虚拟机。
  7. 将 VM 注册到 SQL IaaS 代理扩展

故障转移群集实例支持

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

如果 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 月,扩展体系结构进行了更新,完全删除了管理模式,现在依赖于最小特权原则,让客户可以逐个功能控制他们想如何使用扩展。

自 2023 年 3 月起,当你首次注册到扩展时,二进制文件将保存到虚拟机,提供基本功能(例如许可证管理)。 启用依赖于代理的任何功能后,将使用二进制文件将 SQL IaaS 代理安装到虚拟机,并根据需要由启用的每个功能向 SQL IaaS 代理服务分配权限

限制

SQL IaaS 代理扩展仅支持:

  • 通过 Azure 资源管理器部署的 SQL Server VM。 不支持通过经典模型部署的 SQL Server VM。
  • 必须在 SQL Server 配置管理器和虚拟机中启用 TCP/IP,以便扩展能够与 Azure VM 上的 SQL Server 配合使用。
  • SQL Server FCI 的功能有限。 注册到扩展的 SQL Server FCI 不支持需要代理的功能,例如自动备份、修补和高级门户管理。
  • 具有默认实例或单个命名实例的 VM。
  • 如果 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 Server 和 SQL IaaS 代理扩展时,请考虑以下隐私声明:

  • 自动注册:默认情况下,具有 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 的文章。 有关问题的解决方法,请阅读排查有关扩展的已知问题

若要了解详细信息,请查看以下文章: