applies to:SQL Server
本文列出了为SQL Server创建的Azure扩展安装的服务器和数据库角色和映射。
角色
在非最低特权模式下为 SQL Server 安装 Azure 扩展时,安装:
- 创建服务器级角色:
SQLArcExtensionServerRole - 创建数据库级角色:
SQLArcExtensionUserRole - 将
NT AUTHORITY\SYSTEM帐户添加到每个角色 - 在每个数据库的数据库级别映射
NT AUTHORITY\SYSTEM - 为启用的功能授予最低权限
或者,可以通过Azure Arc配置为在最低特权模式下运行SQL Server。 有关详细信息,请参阅 operate SQL Server,Azure Arc启用最低特权。
此外,SQL Server Azure扩展在不再需要特定功能时撤销这些角色的权限。
注意
上述操作要求部署程序以 NT AUTHORITY\SYSTEM 身份连接到SQL Server。 如果删除、禁用或拒绝CONNECT SQL权限的 NT AUTHORITY\SYSTEM 登录名,则部署程序无法执行上述任何操作,并且SQL Server的 Azure 扩展无法预配。 有关验证和还原此登录名的步骤 ,请参阅先决条件 。
SqlServerExtensionPermissionProvider是一项Windows任务。 它执行 Deployer.exe,以在检测到以下情况时授予或撤销SQL Server中的特权:
- 主机上安装了新的SQL Server实例
- 从主机卸载SQL Server实例
- 实例级功能已启用或禁用,或更新设置
- 扩展服务已重启
- 已启用或禁用实时 (JIT) 权限
注意
在 2024 年 7 月版本之前, SqlServerExtensionPermissionProvider 是一项按小时运行的计划任务。
有关详细信息,请查看 配置Windows服务帐户以及 SQL Server Azure 扩展的权限。
如果卸载 SQL Server 的 Azure 扩展,则会删除服务器级角色和数据库级角色。
权限
| 功能 | 权限 | Level | 角色 |
|---|---|---|---|
| 默认 | VIEW SERVER STATE |
服务器级别 | SQLArcExtensionServerRole |
CONNECT SQL |
服务器级别 | SQLArcExtensionServerRole | |
VIEW ANY DEFINITION |
服务器级别 | SQLArcExtensionServerRole | |
VIEW ANY DATABASE |
服务器级别 | SQLArcExtensionServerRole | |
CONNECT ANY DATABASE |
服务器级别 | SQLArcExtensionServerRole | |
SELECT dbo.sysjobactivity |
msdb |
SQLArcExtensionUserRole | |
SELECT dbo.sysjobs |
msdb |
SQLArcExtensionUserRole | |
SELECT dbo.syssessions |
msdb |
SQLArcExtensionUserRole | |
SELECT dbo.sysjobHistory |
msdb |
SQLArcExtensionUserRole | |
SELECT dbo.sysjobSteps |
msdb |
SQLArcExtensionUserRole | |
SELECT dbo.syscategories |
msdb |
SQLArcExtensionUserRole | |
SELECT dbo.sysoperators |
msdb |
SQLArcExtensionUserRole | |
SELECT dbo.suspectpages |
msdb |
SQLArcExtensionUserRole | |
SELECT dbo.backupset |
msdb |
SQLArcExtensionUserRole | |
SELECT dbo.backupmediaset |
msdb |
SQLArcExtensionUserRole | |
SELECT dbo.backupmediafamily |
msdb |
SQLArcExtensionUserRole | |
SELECT dbo.backupfile |
msdb |
SQLArcExtensionUserRole | |
| 备份 | CREATE ANY DATABASE |
服务器级别 | SQLArcExtensionServerRole |
| db_backupoperator 角色 | “所有数据库” | SQLArcExtensionUserRole | |
| dbcreator | 服务器级别 | SQLArcExtensionServerRole | |
| Azure控制平面 | CREATE TABLE |
msdb |
SQLArcExtensionUserRole |
ALTER ANY SCHEMA |
msdb |
SQLArcExtensionUserRole | |
CREATE TYPE |
msdb |
SQLArcExtensionUserRole | |
EXECUTE |
msdb |
SQLArcExtensionUserRole | |
| db_datawriter 角色 | msdb |
SQLArcExtensionUserRole | |
| db_datareader 角色 | msdb |
SQLArcExtensionUserRole | |
| 可用性组发现 | VIEW ANY DEFINITION |
服务器级别 | SQLArcExtensionServerRole |
| 可用性组故障转移 | ALTER ANY AVAILABILITY GROUP |
服务器级别 | SQLArcExtensionServerRole |
| Purview | SELECT |
“所有数据库” | SQLArcExtensionUserRole |
EXECUTE |
“所有数据库” | SQLArcExtensionUserRole | |
| 迁移评估 | EXECUTE dbo.agent_datetime |
msdb |
SQLArcExtensionUserRole |
SELECT dbo.sysjobs |
msdb |
SQLArcExtensionUserRole | |
SELECT dbo.sysmail_account |
msdb |
SQLArcExtensionUserRole | |
SELECT dbo.sysmail_profile |
msdb |
SQLArcExtensionUserRole | |
SELECT dbo.sysmail_profileaccount |
msdb |
SQLArcExtensionUserRole | |
SELECT dbo.syssubsystems |
msdb |
SQLArcExtensionUserRole | |
SELECT sys.sql_expression_dependencies |
“所有数据库” | SQLArcExtensionUserRole |
使用最小特权运行
若要运行具有最低特权的SQL Server的Azure扩展,请按照 Operate SQL Server 启用的Azure Arc最低特权的说明进行操作。
目前,最低特权配置不是默认值。