为 SQL Server 的 Azure 扩展配置 Windows 服务帐户和权限

Applies to:SQL Server

This article lists the permissions the Azure extension for SQL Server grants to the NT Service\SQLServerExtension account when least privilege is used for SQL Server instances enabled by Azure Arc. With the least privilege configuration, the extension only grants necessary permissions when you enable features in the Azure portal.

Note

NT Authority\System 必须有权修改列出的目录和注册表项的权限。 这是必需的,以便 NT Authority\System 可以授予对帐户的最小特权模式所需的访问权限 NT Service\SqlServerExtension

Overview

When SQL Server is connected to Azure Arc with least privilege enabled, the Azure Arc extension grants its service account, NT SERVICE\SQLServerExtension, only the permissions required by each feature at the moment that feature is enabled. 如果该功能后来被禁用,并且任何保持非活动功能的功能永远不会被授予其关联权限,则会自动撤销这些权限。

不支持手动设置代理帐户的权限。

Note

目前,默认情况下不会应用最低特权配置。

具有扩展版本或更高版本 1.1.2859.223 的现有服务器最终将应用最低特权配置。 此扩展于 2024 年 11 月发布。 若要防止自动应用最低特权,请阻止扩展升级。1.1.2859.223

启用以下功能时,按功能指定扩展授予的权限:

Directory permissions

Directory path Required permissions Details Feature
<SystemDrive>\Packages\Plugins\Microsoft.AzureData.WindowsAgent.SQLServer Full control 与扩展相关的 dll 和 exe 文件。 Default
C:\Packages\Plugins\Microsoft.AzureData.WindowsAgent.SqlServer\<extension_version>\RuntimeSettings Full control 扩展设置文件。 Default
C:\Packages\Plugins\Microsoft.AzureData.WindowsAgent.SqlServer\<extension_version>\status Full control 扩展状态文件。 Default
C:\ProgramData\GuestConfig\extension_logs\Microsoft.AzureData.WindowsAgent.SqlServer Full control 扩展日志文件。 Default
C:\Packages\Plugins\Microsoft.AzureData.WindowsAgent.SqlServer\<extension_version>\status\HeartBeat.Json Full control 扩展检测信号文件。 Default
%ProgramFiles%\Sql Server Extension Full control 扩展服务文件。 Default
<SystemDrive>\Windows\system32\extensionUpload Full control 需要写入计费所需的使用情况文件。 Default
<SystemDrive>\Windows\system32\ExtensionHandler.log Full control 扩展创建的预日志文件夹。 Default
<ProgramData>\AzureConnectedMachineAgent\Config Read Arc 配置文件目录。 Default
C:\Windows\System32\config\systemprofile\AppData\Local\Microsoft SQL Server Extension Agent Full control 需要编写评估报告和状态。 Default
SQL log directory (as set in registry) 1 :
C:\Program Files\Microsoft SQL Server\MSSQL<base_version>.<instance_name>\MSSQL\log
Read 从 SQL 日志中提取 SQL vCore 信息所必需的。 Default
SQL backup directory (as set in registry) 1 :
C:\Program Files\Microsoft SQL Server\MSSQL<base_version>.<instance_name>\MSSQL\Backup
ReadAndExecute/Write /Delete 备份所需的 备份

1 For more information, see File Locations and Registry Mapping.

Registry permissions

基键: HKEY_LOCAL_MACHINE

Registry key Required permission Details Feature
SOFTWARE\Microsoft\Microsoft SQL Server Read 读取 SQL Server 属性,例如 installedInstances Default
SOFTWARE\Microsoft\Microsoft SQL Server\<InstanceRegistryName>\MSSQLSERVER Full control Microsoft Entra ID 和 Purview。 Microsoft Entra ID

Purview
SOFTWARE\Microsoft\SystemCertificates Full control Microsoft Entra ID 是必需的。 Microsoft Entra ID
SYSTEM\CurrentControlSet\Services Read SQL Server 帐户名称。 Default
SOFTWARE\Microsoft\AzureDefender\SQL Read Azure Defender 状态和上次更新时间。 Default
SOFTWARE\Microsoft\SqlServerExtension Full control 扩展相关值。 Default
SOFTWARE\Policies\Microsoft\Windows 读取和写入 通过扩展启用自动 Windows 更新。 Automatic updates

Group permissions

NT Service\SQLServerExtension 已添加到混合代理扩展应用程序。 这使 Azure 实例元数据服务(IMDS)握手能够检索与 Azure 数据平面服务(例如数据处理服务(DPS)通信所需的计算机资源托管标识令牌,以及用于计费使用情况、扩展日志和监视仪表板数据收集的遥测终结点。

SQL permissions

添加帐户 NT Service\SQLServerExtension

  • 作为对计算机上当前存在的所有实例的 SQL 登录名
  • 作为每个数据库中的用户

扩展还会在启用功能时向实例和数据库对象授予权限。

Note

最低权限取决于已启用的功能。 不再需要权限时会更新这些权限。 启用功能时,会授予必要的权限。

按功能排序的 SQL 特权

下表列出了控制 Azure 扩展 for SQL Server 授予的权限的功能的默认行为:

Feature Default behavior
默认扩展权限 默认启用
Automated backups 默认已禁用
Availability groups 默认启用
最佳做法评估 默认已禁用
数据库迁移(预览版) 默认启用
迁移评估(预览版) 默认启用
时间点还原 默认已禁用
Purview 默认已禁用

默认扩展权限

以下默认权限是适用于 SQL Server 的 Azure 扩展提供的基本功能级别的最低要求,必须应用:

Object type 数据库或对象名称 Privilege
Database master VIEW DATABASE STATE
Database msdb ALTER ANY SCHEMA
Database msdb CREATE TABLE
Database msdb CREATE TYPE
Database msdb DB DATA READER
Database msdb DB DATA WRITER
Database msdb EXECUTE
Database msdb SELECT dbo.backupfile
Database msdb SELECT dbo.backupmediaset
Database msdb SELECT dbo.backupmediafamily
Database msdb SELECT dbo.backupset
Database msdb SELECT dbo.syscategories
Database msdb SELECT dbo.sysjobactivity
Database msdb SELECT dbo.sysjobhistory
Database msdb SELECT dbo.sysjobs
Database msdb SELECT dbo.sysjobsteps
Database msdb SELECT dbo.syssessions
Database msdb SELECT dbo.sysoperators
Database msdb SELECT dbo.suspectpages
Server CONNECT ANY DATABASE
Server CONNECT SQL
Server VIEW ANY DATABASE
Server VIEW ANY DEFINITION
Server VIEW SERVER STATE

Automated backups

Automated backups are disabled by default. 向启用了自动备份的任何数据库授予备份权限。 Enabling the backup feature also enables the point-in-time restore feature, so the permission to create a database is also granted.

如果启用这些功能,将自动授予以下权限:

Object type 数据库或对象名称 Privilege
Database All databases DB BACKUP OPERATOR
Server CREATE ANY DATABASE
Server master DB CREATOR

Availability groups

Availability group discovery and management features such as failing over are enabled by default, but they can be disabled through the AvailabilityGroupDiscovery feature flag.

如果启用该功能,将自动授予以下权限:

Object type 数据库或对象名称 Privilege
Server ALTER ANY AVAILABILITY GROUP
Server VIEW ANY DEFINITION

最佳做法评估

最佳做法评估默认处于禁用状态。

如果启用该功能,将自动授予以下权限:

Object type 数据库或对象名称 Privilege
Database master SELECT
Database master VIEW DATABASE STATE
Database msdb SELECT
Server VIEW ANY DATABASE
Server VIEW ANY DEFINITION
Server VIEW SERVER STATE
StoredProcedure EnumErrorLogsSP EXECUTE
StoredProcedure ReadErrorLogsSP EXECUTE

Database migration

默认启用 数据库迁移(预览版) 功能,并且仅需要 默认扩展权限中列出的权限,但执行特定迁移作时,数据库迁移(预览)功能使用的一些权限将被授予 实时权限

以下作需要实时授予的其他权限:

Note

在迁移过程中,具有 SqlServerAvailabilityGroups_CreateManagedInstanceLinkAzure 中的用户 SqlServerAvailabilityGroups_failoverMiLinkSqlServerAvailabilityGroups_deleteMiLink 权限可以在 数据库迁移(预览版) 页上执行作,以提升扩展使用的帐户的 SQL Server 权限,包括 sysadmin 角色。

On the Migrate data step, just-in-time permissions are granted when you select Start data migration on the Review + Create tab for a Managed Instance link migration. 配置分布式可用性组需要提升的权限。 创建分布式可用性组后,将撤销权限,并且 Azure 门户中可见的部署处于已完成状态。 如果另一个迁移同时运行,则在创建最后一个分布式可用性组之前,不会撤销权限。

创建托管实例链接迁移的作在创建请求期间获取以下权限:

Object type 数据库或对象名称 Privilege
Server CREATE AVAILABILITY GROUP
Server ALTER ANY AVAILABILITY GROUP
Server ALTER ANY DATABASE
Server CREATE ENDPOINT
Server ALTER ANY ENDPOINT
Server CREATE CERTIFICATE
Database master IMPERSONATE ON USER::[dbo]

“监视”和“直接转换”步骤中,选择托管实例链接迁移的“完全直接转换”选项时,将授予实时权限。 直接转换完成后,将撤销权限。

完成托管实例链接迁移直接转换的作在完成请求期间获取以下权限:

Object type 数据库或对象名称 Privilege
Server CREATE AVAILABILITY GROUP
Server ALTER ANY AVAILABILITY GROUP
Server ALTER ANY DATABASE
Server sysadmin 1

1 If least privilege is enabled, the complete cutover action also grants the sysadmin role to the NT Service\SQLServerExtension account for the duration of the cutover. 需要此角色才能将分布式可用性组故障转移到 Azure SQL 托管实例。

“监视和直接转换”步骤中,选择托管实例链接迁移的“取消迁移”选项时,将授予实时权限。 取消迁移后,将撤销权限。

取消托管实例链接迁移的作在取消请求期间获取以下权限:

Object type 数据库或对象名称 Privilege
Server ALTER ANY AVAILABILITY GROUP
Server ALTER ANY DATABASE
Server sysadmin 1

1 If least privilege is enabled, the cancel action also grants the sysadmin role to the NT Service\SQLServerExtension account for the duration of the cancel request. 删除分布式可用性组时,需要此角色。

Migration assessment

迁移评估(预览版) 默认处于启用状态。

如果禁用该功能,除非其他已启用的功能需要这些权限,否则将撤销以下权限:

Object type 数据库或对象名称 Privilege
Database All databases SELECT sys.sqlexpressiondependencies
Database msdb EXECUTE dbo.agentdatetime
Database msdb SELECT dbo.syscategories
Database msdb SELECT dbo.sysjobhistory
Database msdb SELECT dbo.sysjobs
Database msdb SELECT dbo.sysjobsteps
Database msdb SELECT dbo.sysmailaccount
Database msdb SELECT dbo.sysmailprofile
Database msdb SELECT dbo.sysmailprofileaccount
Database msdb SELECT dbo.syssubsystems

Purview

The Purview features are disabled by default.

如果启用该功能,将自动授予以下权限:

Object type 数据库或对象名称 Privilege
Database All databases EXECUTE
Database All databases SELECT
Server CONNECT ANY DATABASE
Server VIEW ANY DATABASE

实时 SQL 权限

某些 SQL 权限仅在需要执行特定作时分配,并在需要权限的作完成后立即撤销。 如果吊销无法执行,则每 50 分钟运行一次后台清理作业会自动撤销已过时的权限。

将实时权限分配给服务帐户:

  • NT Service\SQLServerExtension 如果启用了最小特权,则为
  • 如果禁用了最低权限,则本地系统帐户。

目前,以下功能使用实时权限:

Additional permissions

  • 服务帐户访问扩展服务的权限,并配置自动恢复。
  • 服务帐户的登录即服务权限。