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_failoverMiLink和 SqlServerAvailabilityGroups_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如果启用了最小特权,则为 - 如果禁用了最低权限,则本地系统帐户。
目前,以下功能使用实时权限:
- Database migration when using the Managed Instance link migration option.
Additional permissions
- 服务帐户访问扩展服务的权限,并配置自动恢复。
- 服务帐户的登录即服务权限。