共用方式為


設定適用於 SQL Server 的 Azure 擴充功能的 Windows 服務帳戶和許可權

適用於:SQL Server

本文列出當您對 NT Service\SQLServerExtension使用最低許可權時,適用於 SQL Server 的 Azure 延伸模組會授與帳戶的許可權。使用最低許可權設定時,當您在 Azure 入口網站中啟用功能時,延伸模組只會授與必要的許可權。

Note

NT Authority\System 必須具有修改所列出目錄和登錄機碼之許可權的存取權。 此存取權是必要的,以便 NT Authority\System 授予帳戶的 NT Service\SqlServerExtension 最低許可權模式所需的存取權。

Overview

當您將 SQL Server 連線到 Azure Arc 並啟用 最低許可權 時,Azure Arc 延伸模組只會授與其服務帳戶, NT SERVICE\SQLServerExtension只有在您啟用該功能時,每個功能所需的許可權。 如果您停用該功能,擴充功能會自動移除這些權限。 如果功能處於非作用中狀態,擴充功能不會授與該功能的任何權限。

不支援手動設定代理程式帳戶的許可權。

Note

目前,預設不會套用最低權限設定。

具有延伸版本 1.1.2859.223 或更高版本的現有伺服器最終會套用最低權限的設定。 此擴充功能已於 2024 年 11 月發行。 若要防止自動套用最低權限,請在1.1.2859.223之後封鎖延伸功能升級。

功能的 SQL 權限 一節說明當您啟用下列功能時,擴充功能會授與的權限:

目錄權限

目錄路徑 所需權限 Details Feature
<SystemDrive>\Packages\Plugins\Microsoft.AzureData.WindowsAgent.SQLServer 完全控制 與延伸模組相關的 DLL 和 EXE 檔案。 Default
C:\Packages\Plugins\Microsoft.AzureData.WindowsAgent.SqlServer\<extension_version>\RuntimeSettings 完全控制 延伸模組配置檔。 Default
C:\Packages\Plugins\Microsoft.AzureData.WindowsAgent.SqlServer\<extension_version>\status 完全控制 擴充功能狀態檔。 Default
C:\ProgramData\GuestConfig\extension_logs\Microsoft.AzureData.WindowsAgent.SqlServer 完全控制 擴充功能記錄檔。 Default
C:\Packages\Plugins\Microsoft.AzureData.WindowsAgent.SqlServer\<extension_version>\status\HeartBeat.Json 完全控制 擴充活動訊號檔案。 Default
%ProgramFiles%\Sql Server Extension 完全控制 擴充服務檔案。 Default
<SystemDrive>\Windows\system32\extensionUpload 完全控制 需要寫入計費所需的使用量檔案。 Default
<SystemDrive>\Windows\system32\ExtensionHandler.log 完全控制 擴充功能所建立的預先記錄資料夾。 Default
<ProgramData>\AzureConnectedMachineAgent\Config Read Arc 組態檔目錄。 Default
C:\Windows\System32\config\systemprofile\AppData\Local\Microsoft SQL Server Extension Agent 完全控制 撰寫評量報告和狀態的必要專案。 Default
SQL 日誌目錄(在登錄中設定) 1
C:\Program Files\Microsoft SQL Server\MSSQL<base_version>.<instance_name>\MSSQL\log
Read 需要從 SQL 記錄擷取 SQL 虛擬核心資訊。 Default
SQL 備份目錄 (如登錄中所設定) 1
C:\Program Files\Microsoft SQL Server\MSSQL<base_version>.<instance_name>\MSSQL\Backup
讀取和執行/寫入/刪除 備份的必要專案 備份

1 如需詳細資訊,請參閱檔案 位置和登錄對應

登錄權限

基底鍵: HKEY_LOCAL_MACHINE

登錄鍵 必要權限 Details Feature
SOFTWARE\Microsoft\Microsoft SQL Server Read 讀取 SQL Server 屬性, 例如 installedInstances Default
SOFTWARE\Microsoft\Microsoft SQL Server\<InstanceRegistryName>\MSSQLSERVER 完全控制 Microsoft Entra ID 和 Purview。 Microsoft Entra ID

Purview
SOFTWARE\Microsoft\SystemCertificates 完全控制 Microsoft Entra ID 的必要專案。 Microsoft Entra ID
SYSTEM\CurrentControlSet\Services Read SQL Server 帳戶名稱。 Default
SOFTWARE\Microsoft\AzureDefender\SQL Read Azure Defender 狀態和上次更新時間。 Default
SOFTWARE\Microsoft\SqlServerExtension 完全控制 延伸模組相關值。 Default
SOFTWARE\Policies\Microsoft\Windows 讀取和寫入 透過擴充功能啟用自動 Windows 更新。 自動更新

群組權限

NT Service\SQLServerExtension 會新增至混合式代理程序擴充功能應用程式。 這可讓 Azure 實例元數據服務 (IMDS) 交握擷取與 Azure 數據平面服務通訊所需的機器資源受控識別令牌,例如數據處理服務 (DPS) 和計費使用量、延伸模組記錄和監視儀錶板數據收集的遙測端點。

SQL 權限

NT Service\SQLServerExtension 新增帳戶:

  • 作為目前存在於計算機上所有實例的 SQL 登入
  • 身為每個資料庫中的使用者

擴充功能也會在啟用功能時授與實例和資料庫對象的許可權。

Note

最低許可權取決於已啟用的功能。 擴充功能會在不再需要權限時更新權限。 當您啟用功能時,它會授予必要的權限。

NT Service\SQLServerExtension 帳戶權限詳細資料

登錄路徑 權限 帳戶遭到入侵時 NT Service\SQLServerExtension 許可權的相關風險
SOFTWARE\Microsoft\Microsoft SQL Server Read 延伸模組可以查看已安裝的 SQL Server 版本。
SOFTWARE\Microsoft\Microsoft SQL Server\\MSSQLSERVER 完全控制 只有在啟用 Microsoft Entra 驗證或 Purview 時才需要。 延伸模組可能會修改 SQL Server 設定。
SOFTWARE\Microsoft\SystemCertificates 完全控制 只有在啟用 Microsoft Entra 驗證時才需要。 延伸模組可以取代受信任的根憑證授權單位。
SYSTEM\CurrentControlSet\Services Read 擴充功能可以看到服務帳戶名稱。
SOFTWARE\Microsoft\AzureDefender\SQL Read 延伸模組可以瞭解 Microsoft Defender 狀態和更新時間。
SOFTWARE\Microsoft\SqlServerExtension 完全控制 擴充功能可能會變更擴充功能設定。
SOFTWARE\Policies\Microsoft\Windows 讀取和寫入 只有在啟用 自動更新 時才需要。 擴展可以更改 Windows 更新策略並禁用 Device Guard,它控制代碼完整性和基於虛擬化的安全性,由於遺漏補丁而延長暴露。

依功能排序的 SQL 許可權

下表列出控制 Azure Extension for SQL Server 授與許可權之功能的預設行為:

Feature 預設行為
預設延伸模組許可權 默認為啟用
自動備份 預設為停用
可用性群組 默認為啟用
最佳做法評量 預設為停用
移轉評量 默認為啟用
資料庫移轉 默認為啟用
還原時間點 預設為停用
Purview 預設為停用

預設延伸模組許可權

下列默認許可權是適用於 SQL Server 的 Azure 擴充功能基本層級的最低需求,必須套用:

物件類型 資料庫或物件名稱 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

自動備份

預設情況下,自動備份處於停用狀態。 擴充功能會將備份權限授與任何已啟用自動備份的資料庫。 啟用備份功能也會啟用 時間點還原 功能,因此也會授與建立資料庫的權限。

如果啟用這些功能,擴充功能會自動授與下列權限:

物件類型 資料庫或物件名稱 Privilege
Database 所有資料庫 DB BACKUP OPERATOR
Server CREATE ANY DATABASE
Server master DB CREATOR

可用性群組

可用性群組 探索和管理功能 (例如容錯移轉) 預設會啟用,但您可以透過功能旗標來 AvailabilityGroupDiscovery 停用它們。

如果啟用此功能,擴充功能會自動授與下列權限:

物件類型 資料庫或物件名稱 Privilege
Server ALTER ANY AVAILABILITY GROUP
Server VIEW ANY DEFINITION

最佳做法評量

最佳做法評定預設為停用。

如果啟用此功能,擴充功能會自動授與下列權限:

物件類型 資料庫或物件名稱 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

資料庫移轉

資料庫移轉功能預設會啟用,而且只需要預設延伸模組許可權中列出的許可權,不過資料庫移轉功能所使用的某些許可權會在執行特定移轉動作時授與 Just-In-Time 許可權

下列動作需要擴充功能授與 Just-In-Time 的其他許可:

Note

在 Azure 中具有 、 SqlServerAvailabilityGroups_failoverMiLinkSqlServerAvailabilityGroups_deleteMiLink 許可SqlServerAvailabilityGroups_CreateManagedInstanceLink權的使用者可以在移轉程式期間在 [資料庫移轉] 頁面上執行動作,以提升延伸模組所使用帳戶的 SQL Server 許可權,包括sysadmin角色。

[移轉資料] 步驟中,當您在受控執行個體連結移轉的 [檢閱 + 建立] 索引標籤上選取 [開始資料移轉] 時,擴充功能會授與 Just-In-Time 許可權。 服務帳戶需要提高許可權才能設定分散式可用性群組。 一旦建立分散式可用性群組,它就會撤銷許可權,且 Azure 入口網站中可見的部署處於已完成狀態。 如果另一個移轉同時執行,則在建立最後一個分散式可用性群組之前,延伸模組不會撤銷許可權。

建立受控實例連結移轉的動作會在建立要求期間取得下列許可權:

物件類型 資料庫或物件名稱 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]

[監視和完全移轉] 步驟中,當您選取受控執行個體連結移轉的 [完成完全移轉] 選項時,延伸模組會授與 Just-In-Time 許可權。 擴充功能會在完全移轉完成後撤銷許可。

完成受控實例連結移轉完全移轉的動作,在完整要求期間會取得下列許可權:

物件類型 資料庫或物件名稱 Privilege
Server CREATE AVAILABILITY GROUP
Server ALTER ANY AVAILABILITY GROUP
Server ALTER ANY DATABASE
Server sysadmin 1

1 如果已啟用最低權限,則完整的切換動作也會在切換期間將角色sysadmin授與NT Service\SQLServerExtension帳戶。 需要此角色,才能將分散式可用性群組故障轉移至 Azure SQL 受控實例。

[監視和完全移轉] 步驟中,當您選取受控執行個體連結移轉的 [取消移轉] 選項時,延伸模組會授與 Just-In-Time 許可權。 擴充功能會在取消移轉之後撤銷許可權。

取消受控實例連結移轉的動作會在取消要求期間取得下列許可權:

物件類型 資料庫或物件名稱 Privilege
Server ALTER ANY AVAILABILITY GROUP
Server ALTER ANY DATABASE
Server sysadmin 1

1 如果已啟用最低權限,則取消動作也會在取消要求期間將角色sysadmin授與NT Service\SQLServerExtension帳戶。 刪除分散式可用性群組時,需要此角色。

移轉評估

預設會啟用移轉評量

如果停用此功能,擴充功能會撤銷下列權限,除非其他已啟用的功能需要這些權限:

物件類型 資料庫或物件名稱 Privilege
Database 所有資料庫 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

Purview 功能預設為停用。

如果啟用此功能,擴充功能會自動授與下列權限:

物件類型 資料庫或物件名稱 Privilege
Database 所有資料庫 EXECUTE
Database 所有資料庫 SELECT
Server CONNECT ANY DATABASE
Server VIEW ANY DATABASE

Just-In-Time SQL 許可權

某些 SQL 許可權只會在需要執行特定動作時指派,並在需要許可權的作業完成時立即撤銷。 如果撤銷無法執行,則每隔 50 分鐘執行一次背景清除作業會自動撤銷已過時的許可權。

Just-In-Time 許可權會指派給服務帳戶:

  • NT Service\SQLServerExtension 如果已啟用最低許可權,則為
  • 如果停用最低許可權,則為本機系統帳戶。

目前,下列功能使用 Just-In-Time 許可權:

其他權限

  • 存取擴充功能服務的服務帳戶許可權,並設定自動復原。
  • 服務帳戶的登入即服務許可權。