設定 Windows 服務帳戶與權限

適用範圍: 是SQL Server (所有支援的版本)

SQL Server 中的每個服務都代表一個進程或一組處理常式,用來管理 Windows 的 SQL Server 作業驗證。 本主題說明這一版 SQL Server 中服務的預設設定,以及 SQL Server 安裝期間和之後可設定 SQL Server 服務的設定選項。 本主題可協助進階使用者了解服務帳戶的詳細資料。

大部分的服務和其屬性都可以使用 SQL Server 組態管理員來設定。 以下是 Windows 安裝在 C 磁碟機時,四個最新版本的路徑。

SQL Server 版本 Path
SQL Server 2019 C:\Windows\SysWOW64\SQLServerManager15.msc
SQL Server 2017 C:\Windows\SysWOW64\SQLServerManager14.msc
SQL Server 2016 C:\Windows\SysWOW64\SQLServerManager13.msc
SQL Server 2014 C:\Windows\SysWOW64\SQLServerManager12.msc
SQL Server 2012 C:\Windows\SysWOW64\SQLServerManager11.msc

SQL Server 安裝的服務

視您決定要安裝的元件而定,SQL Server 安裝程式會安裝下列服務:

  • SQL Server 資料庫服務-SQL Server 關聯式的服務 Database Engine 。 可執行檔為 <MSSQLPATH>\MSSQL\Binn\sqlservr.exe。

  • SQL Server Agent -執行作業、監視 SQL Server、引發警示,並啟用部分管理工作的自動化。 SQL Server Agent 服務存在,但是在的實例上已停用 SQL Server Express 。 可執行檔為 <MSSQLPATH>\MSSQL\Binn\sqlagent.exe。

  • Analysis Services - 提供商業智慧應用程式的線上分析處理 (OLAP) 和資料採礦功能。 可執行檔為 <MSSQLPATH>\OLAP\Bin\msmdsrv.exe。

  • Reporting Services - 管理、執行、建立、排程和傳遞報表。 可執行檔為 <MSSQLPATH>\Reporting Services\ReportServer\Bin\ReportingServicesService.exe。

  • Integration Services - 提供 Integration Services 套件儲存體和執行的管理支援。 可執行檔為 <MSSQLPATH>\130\DTS\Binn\MsDtsSrvr.exe

    Integration Services 可能包含相應放大部署的額外服務。 如需詳細資訊,請參閱逐步解說:設定 Integration Services (SSIS) 擴充

  • SQL Server Browser -提供用戶端電腦 SQL Server 連接資訊的名稱解析服務。 可執行檔路徑為 c:\Program Files (x86)\Microsoft SQL Server\90\Shared\sqlbrowser.exe

  • 全文檢索搜尋-快速地在結構化和半結構化資料的內容與屬性上建立全文檢索索引,以針對 SQL Server 提供檔篩選和斷詞。

  • SQL 寫入器 - 允許備份與還原應用程式在磁碟區陰影複製服務 (VSS) 架構中操作。

  • SQL Server Distributed Replay 控制器-提供跨多個 Distributed Replay 用戶端電腦的追蹤重新執行協調流程。

  • SQL Server Distributed Replay 客戶 端-一或多個與 Distributed Replay 控制器一起運作的 Distributed Replay 用戶端電腦,可針對的實例模擬並行工作負載 SQL Server Database Engine 。

  • SQL Server Launchpad - 裝載 Microsoft 所提供外部可執行檔的受信任服務,例如隨 R 服務或機器學習服務一併安裝的 R 或 Python 執行階段。 啟動控制板進程可以啟動附屬進程,但是會根據個別實例的設定來管理資源。 啟動控制板服務會在自己的使用者帳戶下執行,而特定註冊執行時間的每個附屬進程都會繼承啟動控制板的使用者帳戶。 附屬項目處理序會視需求在執行時加以建立及終結。

    如果您在也做為網域控制站的電腦上安裝 SQL Server,啟動控制板無法建立其所使用的帳戶。 因此,在網域控制站上安裝 R Services (資料庫內) 或 Machine Learning 服務 (資料庫內) 將會失敗。

  • SQL Server PolyBase 引擎 - 提供外部資料來源的分散式查詢功能。

  • SQL Server PolyBase 資料移動服務 - 可在 SQL Server 與外部資料來源之間,以及在 PolyBase 向外延展群組的 SQL 節點之間移動資料。

SQL Server 安裝的 CEIP 服務

客戶經驗改進計畫 (CEIP) 服務會將遙測資料傳送回 Microsoft。

視您決定要安裝的元件而定,SQL Server 安裝程式會安裝下列 CEIP 服務:

  • SQLTELEMETRY -將 database engine 遙測 資料傳送回 Microsoft 的客戶經驗改進計畫。
  • SSASTELEMETRY -將 SSAS 遙測 資料傳送回 Microsoft 的客戶經驗改進計畫。
  • SSISTELEMETRY -將 SSIS 遙測 資料傳送回 Microsoft 的客戶經驗改進計畫。

服務屬性和組態

用來啟動和執行 SQL Server 的啟動帳戶可以是網域使用者帳戶本機使用者帳戶受管理的服務帳戶虛擬帳戶內建的系統帳戶。 若要啟動並執行,SQL Server 中的每個服務都必須在安裝期間設定啟動帳戶。

注意

針對 SQL Server 2016 和更新版本的 SQL Server 容錯移轉叢集實例,可以使用網域使用者帳戶群組管理的服務帳戶做為 SQL Server 的啟動帳戶。

本節說明可設定來啟動 SQL Server 服務的帳戶、SQL Server 安裝程式使用的預設值、每個服務 SID 的概念、啟動選項,以及設定防火牆。

預設服務帳戶

下表列出安裝所有元件時,安裝程式所使用的預設服務帳戶。 列出的預設帳戶就是建議的帳戶 (除非另有附註)。

獨立伺服器或網域控制站

元件 Windows Server 2008 Windows 7 及 Windows Server 2008 R2 和更新版本
Database Engine NETWORK SERVICE 虛擬帳戶*
SQL Server Agent NETWORK SERVICE 虛擬帳戶*
SSAS NETWORK SERVICE 虛擬帳戶***
SSIS NETWORK SERVICE 虛擬帳戶*
SSRS NETWORK SERVICE 虛擬帳戶*
SQL ServerDistributed Replay 控制器 NETWORK SERVICE 虛擬帳戶*
SQL ServerDistributed Replay 用戶端 NETWORK SERVICE 虛擬帳戶*
FD 啟動器 (全文檢索搜尋) LOCAL SERVICE 虛擬帳戶
SQL Server Browser LOCAL SERVICE LOCAL SERVICE
SQL Server VSS Writer LOCAL SYSTEM LOCAL SYSTEM
進階分析擴充功能 NTSERVICE\MSSQLLaunchpad NTSERVICE\MSSQLLaunchpad
PolyBase 引擎 NETWORK SERVICE NETWORK SERVICE
PolyBase 資料移動服務 NETWORK SERVICE NETWORK SERVICE

*當需要 SQL Server 電腦外部的資源時, Microsoft 建議使用受管理的服務帳戶 (MSA) ,並以必要的最低許可權設定。 ** 安裝在網域控制站時,不支援作為服務帳戶的虛擬帳戶。

SQL Server 容錯移轉叢集執行個體

元件 Windows Server 2008 Windows Server 2008 R2
Database Engine 無。 提供 網域使用者 帳戶。 提供 網域使用者 帳戶。
SQL Server Agent 無。 提供 網域使用者 帳戶。 提供 網域使用者 帳戶。
SSAS 無。 提供 網域使用者 帳戶。 提供 網域使用者 帳戶。
SSIS NETWORK SERVICE 虛擬帳戶
SSRS NETWORK SERVICE 虛擬帳戶
FD 啟動器 (全文檢索搜尋) LOCAL SERVICE 虛擬帳戶
SQL Server Browser LOCAL SERVICE LOCAL SERVICE
SQL Server VSS Writer LOCAL SYSTEM LOCAL SYSTEM

變更帳戶內容

重要

  • 請一律使用 SQL Server 工具(例如 SQL Server 組態管理員)來變更 SQL Server Database Engine 或 SQL Server Agent 服務所使用的帳戶,或變更帳戶的密碼。 除了變更帳戶名稱之外,SQL Server 組態管理員也會執行其他設定,例如更新保護服務主要金鑰的 Windows 本機安全性存放區 Database Engine 。 其他工具(例如 Windows Services 控制管理員)可以變更帳戶名稱,但不會變更所有必要的設定。
  • 對於您在 SharePoint 伺服陣列中部署的 Analysis Services 執行個體,請一律使用 SharePoint 管理中心來變更 Power Pivot 服務 應用程式和 Analysis Services 服務的伺服器帳戶。 當您使用管理中心時,相關聯的設定和權限都會更新為使用新的帳戶資訊。
  • 若要變更 Reporting Services 選項,請使用 Reporting Services 組態工具。

受管理的服務帳戶、Group-Managed 服務帳戶和虛擬帳戶

受管理的服務帳戶、群組管理的服務帳戶和虛擬帳戶的設計目的,是為了提供重要的應用程式(例如 SQL Server 隔離自己的帳戶),同時不需要系統管理員手動管理服務主體名稱 (SPN) 和這些帳戶的認證。 這些可讓您更輕鬆地管理服務帳戶使用者、密碼和 Spn。

  • 受控服務帳戶

    受管理的服務帳戶 (MSA) 是一種網域帳戶,由網域控制站建立和管理。 這個帳戶會指派給執行服務的單一成員電腦使用。 密碼是由網域控制站自動管理。 您無法使用 msa 來登入電腦,但電腦可以使用 msa 來啟動 Windows 服務。 MSA 能夠在提供讀取和寫入 servicePrincipalName 權限時,於 Active Directory 內註冊服務主體名稱 (SPN)。 MSA 以 $ 尾碼命名,例如 DOMAIN\ACCOUNTNAME $。 指定 MSA 時,請將密碼保留空白。 由於 MSA 已指派給單一電腦,因此不能在 Windows 叢集的不同節點上使用。

    注意

    您必須先在網域系統管理員 Active Directory 中建立 MSA,SQL Server 安裝程式才能將其用於 SQL Server 服務。

  • 群組管理的服務帳戶

    Group-Managed 服務帳戶 (gMSA) 是多部伺服器的 MSA。 Windows 會為伺服器群組上執行的服務管理服務。 Active Directory 會自動更新群組管理的服務帳戶密碼,而不需重新開機服務。 您可以設定 SQL Server 服務使用群組管理的服務帳戶主體。 從 SQL Server 2014 開始,SQL Server 支援獨立實例的群組管理的服務帳戶,以及適用于容錯移轉叢集實例和可用性群組的 SQL Server 2016 和更新版本。

    若要針對 SQL Server 2014 或更新版本使用 gMSA,作業系統必須是 Windows Server 2012 R2 或更新版本。 Windows Server 2012 R2 的伺服器需要套用 KB 2998082 ,以便服務可以在變更密碼之後立即登入,不會中斷。

    如需詳細資訊,請參閱群組受控服務帳戶

    注意

    網域系統管理員必須先在 Active Directory 中建立 gMSA,SQL Server 安裝程式才能將其用於 SQL Server 服務。

  • Virtual Accounts

    虛擬帳戶 (從 Windows Server 2008 R2 和 Windows 7 開始) 為「受管理的本機帳戶」 ,並會提供下列功能來簡化服務管理工作。 虛擬帳戶是自動管理的,而且虛擬帳戶可以在網域環境中存取網路。 如果在 SQL Server 設定期間,服務帳戶使用預設值,則會使用以實例名稱做為服務名稱的虛擬帳戶,其格式為 NT 服務 \ <SERVICENAME> 。 以虛擬帳戶執行的服務,會利用電腦帳戶的認證存取網路資源,其格式為 <網域名稱> \ <電腦名稱> $ 。 指定虛擬帳戶以開始 SQL Server 時,請將密碼保留空白。 如果虛擬帳戶無法註冊服務主要名稱 (SPN),請手動註冊 SPN。 如需手動註冊 SPN 的詳細資訊,請參閱 手動 Spn 註冊

    注意

    虛擬帳戶無法用於 SQL Server 容錯移轉叢集實例,因為虛擬帳戶在叢集的每個節點上不會有相同的 SID。

    下表列出虛擬帳戶名稱的範例。

    服務 虛擬帳戶名稱
    Database Engine 服務的預設執行個體 NT SERVICE\MSSQLSERVER
    名為 Database Engine 之 服務的具名執行個體 NT SERVICE\MSSQL$PAYROLL
    SQL ServerSQL Server 預設實例上的 Agent 服務 NT SERVICE\SQLSERVERAGENT
    SQL ServerSQL Server 實例上的 Agent 服務,名為 薪資 NT SERVICE\SQLAGENT$PAYROLL

如需受管理的服務帳戶和虛擬帳戶的詳細資訊,請參閱 服務帳戶的逐步指南受管理的服務帳戶和虛擬帳戶概念 一節,以及 受管理的服務帳戶常見問題集 (FAQ)

注意

永遠使用可能的最低使用者權限來執行 SQL Server 服務。 可能的話,請使用 MSAgMSA虛擬帳戶 。 當 MSA、gMSA 和虛擬帳戶無法使用時,請使用特定低許可權的使用者帳戶或網域帳戶,而不是 SQL Server 服務的共用帳戶。 針對不同的 SQL Server 服務使用不同的帳戶。 請勿授與其他許可權給 SQL Server 服務帳戶或服務群組。 許可權是透過群組成員資格授與,或直接授與服務 sid (支援服務 SID)。

自動啟動

除了具有使用者帳戶之外,每項服務有三個可能的啟動狀態供使用者控制:

  • 已停用 :已安裝服務但目前未執行。
  • 手動 服務已安裝,但只有在其他服務或應用程式需要它的功能時才會啟動。
  • 自動 :服務會由作業系統自動啟動。

啟動狀態會在安裝過程中選取。 安裝命名實例時,SQL Server Browser 服務應該設定為自動啟動。

在自動安裝期間設定服務

下表顯示在安裝期間可以設定的 SQL Server 服務。 若為自動安裝,您可以在組態檔案中或從命令提示字元使用這些參數。

SQL Server 服務名稱 自動安裝的參數*
MSSQLSERVER SQLSVCACCOUNT、SQLSVCPASSWORD、SQLSVCSTARTUPTYPE
SQLServerAgent** AGTSVCACCOUNT、AGTSVCPASSWORD、AGTSVCSTARTUPTYPE
MSSQLServerOLAPService ASSVCACCOUNT、ASSVCPASSWORD、ASSVCSTARTUPTYPE
ReportServer RSSVCACCOUNT、RSSVCPASSWORD、RSSVCSTARTUPTYPE
Integration Services ISSVCACCOUNT、ISSVCPASSWORD、ISSVCSTARTUPTYPE
SQL ServerDistributed Replay 控制器 DRU_CTLR、CTLRSVCACCOUNT、CTLRSVCPASSWORD、CTLRSTARTUPTYPE、CTLRUSERS
SQL ServerDistributed Replay 用戶端 DRU_CLT、CLTSVCACCOUNT、CLTSVCPASSWORD、CLTSTARTUPTYPE、CLTCTLRNAME、CLTWORKINGDIR、CLTRESULTDIR
R 服務或機器學習服務 EXTSVCACCOUNT、EXTSVCPASSWORD、ADVANCEDANALYTICS***
PolyBase 引擎 PBENGSVCACCOUNT, PBENGSVCPASSWORD, PBENGSVCSTARTUPTYPE, PBDMSSVCACCOUNT, PBDMSSVCPASSWORD, PBDMSSVCSTARTUPTYPE, PBSCALEOUT, PBPORTRANGE

*需自動安裝的詳細資訊和範例語法,請參閱從命令提示字元安裝 SQL Server 2016

**SQL Server Express和 with Advanced Services 的實例上已停用 SQL Server Agent 服務 SQL Server Express 。

***目前不支援透過交換器設定的帳戶。 請使用 SQL Server 設定管理員來變更帳戶及其他服務設定。

防火牆通訊埠

在大部分的情況下,一開始安裝時,可以透過與 Database Engine SQL Server Management Studio SQL Server 安裝在同一部電腦上的工具來連接。 SQL Server安裝程式不會在 Windows 防火牆中開啟埠。 除非將 Database Engine 設定為在 TCP 通訊埠上接聽,而且已在 Windows 防火牆中開啟適當的通訊埠進行連接,否則無法從其他電腦連接。 如需詳細資訊,請參閱 設定 Windows 防火牆以允許 SQL Server 存取

服務權限

本節說明 SQL Server 安裝程式為 SQL Server 服務的個別服務 SID 設定的許可權。

服務組態和存取控制

SQL Server 針對其每個服務啟用個別服務 SID,以提供深度的服務隔離和防禦。 每個服務 SID 都是衍生自服務名稱,而且是該服務專用的。 例如,Database Engine 服務的具名執行個體服務 SID 名稱可能是 NT Service\MSSQL$ <InstanceName> 。 服務隔離可讓服務存取特定物件,而不需要以高權限帳戶執行或降低物件的安全性保護。 藉由使用包含服務 SID 的存取控制專案,SQL Server 服務可以限制其資源的存取權。

注意

在 Windows 7 和 Windows Server 2008 R2 (以及更新版本) 上,個別服務 SID 可以是服務所使用的虛擬帳戶。

對於大部分的元件 SQL Server 會直接設定個別服務帳戶的 ACL,因此您可以在不需要重複資源 ACL 程式的情況下,變更服務帳戶。

安裝 SSAS時,會建立 Analysis Services 的個別服務 SID。 另外還會建立本機的 Windows 群組,其命名格式為 SQLServerMSASUser$ computer_name $ instance_name。 個別服務 SID NT SERVICE\MSSQLServerOLAPService 會在本機 Windows 群組中授與成員資格,而本機 Windows 群組則是在 ACL 中授與適當的權限。 如果用來啟動服務的帳戶 Analysis Services 已變更,SQL Server 組態管理員必須變更某些 Windows 許可權 (例如以服務) 登入的許可權,但指派給本機 Windows 群組的許可權仍可供使用,而不需任何更新,因為個別服務 SID 未變更。 這個方法可讓 Analysis Services 服務在升級期間重新命名。

在 SQL Server 安裝期間,SQL Server 安裝程式會為 SSAS 和 SQL Server Browser 服務建立本機 Windows 群組。 針對這些服務,SQL Server 設定本機 Windows 群組的 ACL。

根據服務組態,在安裝或升級期間服務帳戶或服務 SID 會加入做為服務群組成員。

Windows 權限和權利

指派為用來啟動服務的帳戶需要有服務的 啟動、停止和暫停權限 。 SQL Server 安裝程式會自動指派此專案。 請先安裝遠端伺服器管理工具 (RSAT)。 請參閱適用於 Windows 10 的遠端伺服器管理工具

下表顯示針對 SQL Server 元件所使用之個別服務 sid 或本機 Windows 群組 SQL Server 安裝要求的許可權。

SQL Server 服務 SQL Server 安裝程式授與的許可權
SQL Server Database Engine:

(所有權利都會授與個別服務 SID。 預設執行個體:NT SERVICE\MSSQLSERVER。 具名執行個體:NT Service\MSSQLServer$ InstanceName)。
以服務方式登入 (SeServiceLogonRight)

取代處理序層級 Token (SeAssignPrimaryTokenPrivilege)

略過周遊檢查 (SeChangeNotifyPrivilege)

調整處理序的記憶體配額 (SeIncreaseQuotaPrivilege)

啟動 SQL 寫入器的權限

讀取事件記錄檔服務的權限

讀取遠端程序呼叫服務的權限
SQL Server 代理程式:*

(所有權利都會授與個別服務 SID。 預設執行個體:NT Service\SQLSERVERAGENT。 具名執行個體:NT Service\SQLAGENT$ InstanceName。)
以服務方式登入 (SeServiceLogonRight)

取代處理序層級 Token (SeAssignPrimaryTokenPrivilege)

略過周遊檢查 (SeChangeNotifyPrivilege)

調整處理序的記憶體配額 (SeIncreaseQuotaPrivilege)
SSAS:

(所有權利都會授與本機 Windows 群組。 預設執行個體:SQLServerMSASUser$ ComputerName $MSSQLSERVER。 具名執行個體:SQLServerMSASUser$ ComputerName $ InstanceName。 PowerPivot for SharePoint 執行個體:SQLServerMSASUser$ ComputerName $ PowerPivot。)
以服務方式登入 (SeServiceLogonRight)

僅限表格式:

增加處理程序工作組 (SeIncreaseWorkingSetPrivilege)

調整處理序的記憶體配額 (SeIncreaseQuotaPrivilege)

鎖定記憶體中的分頁 (SeLockMemoryPrivilege) - 這只有在分頁完全關閉時才需要。

僅限容錯移轉叢集安裝:

增加排程優先順序 (SeIncreaseBasePriorityPrivilege)
SSRS:

(所有權利都會授與個別服務 SID。 預設執行個體:NT SERVICE\ReportServer。 具名執行個體:NT SERVICE\ReportServer$ InstanceName。)
以服務方式登入 (SeServiceLogonRight)
SSIS:

(所有權利都會授與個別服務 SID。 預設執行個體與具名執行個體:NT SERVICE\MsDtsServer130。 Integration Services 沒有已命名實例的個別進程。 )
以服務方式登入 (SeServiceLogonRight)

寫入應用程式事件記錄檔的權限。

略過周遊檢查 (SeChangeNotifyPrivilege)

在驗證之後模擬用戶端 (SeImpersonatePrivilege)
全文檢索搜尋:

(所有權利都會授與個別服務 SID。 預設執行個體:NT Service\MSSQLFDLauncher。 具名執行個體:NT Service\ MSSQLFDLauncher$ InstanceName。)
以服務方式登入 (SeServiceLogonRight)

調整處理序的記憶體配額 (SeIncreaseQuotaPrivilege)

略過周遊檢查 (SeChangeNotifyPrivilege)
SQL Server瀏覽器:

(所有權利都會授與本機 Windows 群組。 預設或具名執行個體:SQLServer2005SQLBrowserUser $ComputerName。 SQL ServerBrowser 沒有個別的進程可用於命名的實例。 )
以服務方式登入 (SeServiceLogonRight)
SQL ServerVSS 寫入器:

(所有權利都會授與個別服務 SID。 預設或具名執行個體:NT Service\SQLWriter。 SQL ServerVSS 寫入器對於命名的實例沒有個別的進程。 )
SQLWriter 服務會以 LOCAL SYSTEM 帳戶執行,該帳戶擁有所有必要的權限。 SQL Server 安裝程式不會檢查或授與此服務的許可權。
SQL ServerDistributed Replay 控制器: 以服務方式登入 (SeServiceLogonRight)
SQL ServerDistributed Replay 用戶端: 以服務方式登入 (SeServiceLogonRight)
PolyBase 引擎和 DMS 以服務方式登入 (SeServiceLogonRight)
Launchpad: 以服務方式登入 (SeServiceLogonRight)

取代處理序層級 Token (SeAssignPrimaryTokenPrivilege)

略過周遊檢查 (SeChangeNotifyPrivilege)

調整處理序的記憶體配額 (SeIncreaseQuotaPrivilege)
R 服務/機器學習服務: SQLRUserGroup (SQL 2016 和 2017) 預設不具有 [ 允許本機登 入] 許可權
機器學習服務 '所有應用程式套件' [AppContainer] (SQL 2019) SQL Server 'Binn'、R_Services 和 PYTHON_Services 目錄的 讀取和執行權限

*實例上的 SQL Server Agent 服務已停用 SQL Server Express 。

授與 SQL Server 個別服務 SID 或本機 Windows 群組的檔案系統權限

SQL Server 服務帳戶必須有資源的存取權。 存取控制清單會針對個別服務 SID 或本機 Windows 群組設定。

重要

若為容錯移轉叢集安裝,則必須對本機帳戶的 ACL 設定共用磁碟上的資源。

下表顯示 SQL Server 安裝程式所設定的 acl:

服務帳戶 檔案和資料夾 存取
MSSQLServer Instid\MSSQL\backup 完整控制
Instid\MSSQL\binn 讀取、執行
Instid\MSSQL\data 完整控制
Instid\MSSQL\FTData 完整控制
Instid\MSSQL\Install 讀取、執行
Instid\MSSQL\Log 完整控制
Instid\MSSQL\Repldata 完整控制
130\shared 讀取、執行
Instid\MSSQL\Template Data (僅限SQL Server Express ) 讀取
SQLServerAgent* Instid\MSSQL\binn 完整控制
Instid\MSSQL\Log 讀取、寫入、刪除、執行
130\com 讀取、執行
130\shared 讀取、執行
130\shared\Errordumps 讀取、寫入
ServerName\EventLog 完整控制
FTS Instid\MSSQL\FTData 完整控制
Instid\MSSQL\FTRef 讀取、執行
130\shared 讀取、執行
130\shared\Errordumps 讀取、寫入
Instid\MSSQL\Install 讀取、執行
Instid\MSSQL\jobs 讀取、寫入
MSSQLServerOLAPService 130\shared\ASConfig 完整控制
Instid\OLAP 讀取、執行
Instid\Olap\Data 完整控制
Instid\Olap\Log 讀取、寫入
Instid\OLAP\Backup 讀取、寫入
Instid\OLAP\Temp 讀取、寫入
130\shared\Errordumps 讀取、寫入
ReportServer Instid\Reporting Services\Log Files 讀取、寫入、刪除
Instid\Reporting Services\ReportServer 讀取、執行
Instid\Reporting Services\ReportServer\global.asax 完整控制
Instid\Reporting Services\ReportServer\rsreportserver.config 讀取
Instid\Reporting Services\RSTempfiles 讀取、寫入、執行、刪除
Instid\Reporting Services\RSWebApp 讀取、執行
130\shared 讀取、執行
130\shared\Errordumps 讀取、寫入
MSDTSServer100 130\dts\binn\MsDtsSrvr.ini.xml 讀取
130\dts\binn 讀取、執行
130\shared 讀取、執行
130\shared\Errordumps 讀取、寫入
SQL Server Browser 130\shared\ASConfig 讀取
130\shared 讀取、執行
130\shared\Errordumps 讀取、寫入
SQLWriter N/A (以本機系統執行)
User Instid\MSSQL\binn 讀取、執行
Instid\Reporting Services\ReportServer 讀取、執行、列出資料夾內容
Instid\Reporting Services\ReportServer\global.asax 讀取
Instid\Reporting Services\RSWebApp 讀取、執行、列出資料夾內容
130\dts 讀取、執行
130\tools 讀取、執行
100\tools 讀取、執行
90\tools 讀取、執行
80\tools 讀取、執行
130\sdk 讀取
Microsoft SQL Server\130\Setup Bootstrap 讀取、執行
SQL ServerDistributed Replay 控制器 <ToolsDir>\DReplayController\Log\ (空白目錄) 讀取、執行、列出資料夾內容
<ToolsDir>\DReplayController\DReplayController.exe 讀取、執行、列出資料夾內容
<ToolsDir>\DReplayController\resources|讀取、執行、列出資料夾內容
<ToolsDir>\DReplayController\{all dlls} 讀取、執行、列出資料夾內容
<ToolsDir>\DReplayController\DReplayController.config 讀取、執行、列出資料夾內容
<ToolsDir>\DReplayController\IRTemplate.tdf 讀取、執行、列出資料夾內容
<ToolsDir>\DReplayController\IRDefinition.xml 讀取、執行、列出資料夾內容
SQL ServerDistributed Replay 用戶端 <ToolsDir>\DReplayClient\Log|讀取、執行、列出資料夾內容
<ToolsDir>\DReplayClient\DReplayClient.exe 讀取、執行、列出資料夾內容
<ToolsDir>\DReplayClient\resources|讀取、執行、列出資料夾內容
<ToolsDir>\DReplayClient\ (所有 DLL) 讀取、執行、列出資料夾內容
<ToolsDir>\DReplayClient\DReplayClient.config 讀取、執行、列出資料夾內容
<ToolsDir>\DReplayClient\IRTemplate.tdf 讀取、執行、列出資料夾內容
<ToolsDir>\DReplayClient\IRDefinition.xml 讀取、執行、列出資料夾內容
Launchpad %binn 讀取、執行
ExtensiblilityData 完整控制
Log\ExtensibilityLog 完整控制

*SQL Server Express和 with Advanced Services 的實例上已停用 SQL Server Agent 服務 SQL Server Express 。

當資料庫檔案儲存於使用者定義的位置時,您必須授與個別服務 SID 對該位置的存取權。 如需將檔案系統權限授與個別服務 SID 的詳細資訊,請參閱 設定 Database Engine 對檔案系統的存取權限

授與其他 Windows 使用者帳戶或群組的檔案系統權限

某些存取控制許可權可能必須授與內建帳戶或其他 SQL Server 服務帳戶。 下表列出 SQL Server 安裝程式所設定的其他 acl。

要求元件 帳戶 資源 權限
MSSQLServer 效能記錄使用者 Instid\MSSQL\binn 列出資料夾內容
效能監視器使用者 Instid\MSSQL\binn 列出資料夾內容
效能記錄使用者、效能監視器使用者 \WINNT\system32\sqlctr130.dll 讀取、執行
僅限管理員 \\.\root\Microsoft\SqlServer\ServerEvents\<SQL_執行個體名稱>* 完整控制
管理員,系統 \tools\binn\schemas\sqlserver\2004\07\showplan 完整控制
使用者 \tools\binn\schemas\sqlserver\2004\07\showplan 讀取、執行
Reporting Services 報表伺服器 Windows 服務帳戶 <install> \Reporting Services\LogFiles 刪除

READ_CONTROL

SYNCHRONIZE

FILE_GENERIC_READ

FILE_GENERIC_WRITE

FILE_READ_DATA

FILE_WRITE_DATA

FILE_APPEND_DATA

FILE_READ_EA

FILE_WRITE_EA

FILE_READ_ATTRIBUTES

FILE_WRITE_ATTRIBUTES
報表伺服器 Windows 服務帳戶 <install> \Reporting Services\ReportServer 讀取
報表伺服器 Windows 服務帳戶 <install> \Reporting Services\ReportServer\global.asax 完整
報表伺服器 Windows 服務帳戶 <install> \Reporting Services\RSWebApp 讀取、執行
所有人 <install> \Reporting Services\ReportServer\global.asax READ_CONTROL

FILE_READ_DATA

FILE_READ_EA

FILE_READ_ATTRIBUTES
報表伺服器 Windows 服務帳戶 <install> \Reporting Services\ReportServer\rsreportserver.config 刪除

READ_CONTROL

SYNCHRONIZE

FILE_GENERIC_READ

FILE_GENERIC_WRITE

FILE_READ_DATA

FILE_WRITE_DATA

FILE_APPEND_DATA

FILE_READ_EA

FILE_WRITE_EA

FILE_READ_ATTRIBUTES

FILE_WRITE_ATTRIBUTES
所有人 報表伺服器索引鍵 (Instid 登錄區) 查詢值

列舉子機碼

Notify

讀取控制
終端服務使用者 報表伺服器索引鍵 (Instid 登錄區) 查詢值

設定值

建立子機碼

列舉子機碼

Notify

刪除

讀取控制
進階使用者 報表伺服器索引鍵 (Instid 登錄區) 查詢值

設定值

建立子機碼

列舉子機碼

Notify

刪除

讀取控制

*這是 WMI 提供者命名空間。

安裝位置的預設磁片磁碟機是 系統磁片磁碟機,通常是磁片磁碟機 C。本節說明當 tempdb 或使用者資料庫安裝到不尋常的位置時的其他考慮。

非預設磁碟機

當安裝至非預設磁片磁碟機的本機磁片磁碟機時,個別服務 SID 必須具有檔案位置的存取權。 SQL Server安裝程式會布建必要的存取權。

網路共用

將資料庫安裝到網路共用時,服務帳戶必須擁有使用者和 tempdb 資料庫之檔案位置的存取權。 SQL Server安裝程式無法提供網路共用的存取權。 在執行安裝程式之前,使用者必須先為服務帳戶提供 tempdb 位置的存取。 使用者在建立資料庫之前,必須先提供使用者資料庫位置的存取。

注意

虛擬帳戶無法向遠端位置驗證。 所有虛擬帳戶都使用電腦帳戶的權限。 使用下列格式提供電腦帳戶:<網域名稱> \ <電腦名稱> $

檢閱其他考量

下表顯示 SQL Server 服務提供其他功能所需的許可權。

服務/應用程式 功能 必要權限
SQL Server (MSSQLSERVER) 使用 xp_sendmail 寫入郵件位置。 網路寫入權限。
SQL Server (MSSQLSERVER) 針對 SQL Server 系統管理員以外的使用者執行 xp_cmdshell。 做為作業系統的一部分並取代處理序層級 Token。
SQL Server Agent (MSSQLSERVER) 使用自動重新開機功能。 必須是管理員本機群組的成員。
Database Engine Tuning Advisor 調整資料庫以達到最佳查詢效能。 第一次使用時,具有系統管理認證的使用者必須初始化應用程式。 初始化之後,dbo 使用者使用 Database Engine Tuning Advisor 只能微調他們擁有的資料表。 如需詳細資訊,請參閱《 Database Engine SQL Server 線上叢書》中的「第一次使用時初始化微調建議程式」。

重要

在升級 SQL Server 之前,請先啟用 SQL Server 代理程式,並確認必要的預設設定: SQL Server Agent 服務帳戶是 SQL Server 系統管理員(sysadmin )固定伺服器角色的成員。

登錄權限

執行個體感知元件的登錄區會建立在 HKLM\Software\Microsoft\Microsoft SQL Server\ <執行個體識別碼> 之下。 例如:

  • HKLM\Software\Microsoft\Microsoft SQL Server\MSSQL13.MyInstance
  • HKLM\Software\Microsoft\Microsoft SQL Server\MSASSQL13.MyInstance
  • HKLM\Software\Microsoft\Microsoft SQL Server\MSSQL.130

登錄也會維護執行個體識別碼到執行個體名稱的對應。 執行個體識別碼到執行個體名稱的對應維護如下:

  • [HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\Instance Names\SQL] "InstanceName"="MSSQL13"
  • [HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\Instance Names\OLAP] "InstanceName"="MSASSQL13"
  • [HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\Instance Names\RS] "InstanceName"="MSRSSQL13"

WMI

Windows Management Instrumentation (WMI) 必須能夠連接到 Database Engine。 為支援此功能,會在 中提供 Windows WMI 提供者 ( NT SERVICE\winmgmt Database Engine) 的個別服務 SID。

SQL WMI 提供者需要下列最低權限:

  • msdb 資料庫中 db_ddladmindb_owner 固定資料庫角色的成員資格。

  • 伺服器中的 CREATE DDL EVENT NOTIFICATION 權限。

  • 中的 CREATE TRACE EVENT NOTIFICATION Database Engine權限。

  • VIEW ANY DATABASE 伺服器層級權限。

    SQL Server 安裝程式會建立 SQL 的 WMI 命名空間,並將讀取權限授與 SQL Server Agent 服務 SID。

具名管道

在所有安裝中,SQL Server 安裝程式 SQL Server Database Engine 都會透過共用記憶體通訊協定(本機具名管道)提供存取。

提供

本節說明如何在各種 SQL Server 元件內布建帳戶。

資料庫引擎提供

下列帳戶會在 SQL Server Database Engine中加入為登入。

Windows 主體

在安裝期間,SQL Server 安裝程式至少需要將一個使用者帳戶命名為 系統管理員(sysadmin )固定伺服器角色的成員。

sa 帳戶

sa 帳戶一律做為 Database Engine 登入存在,而且是 系統管理員 (sysadmin) 固定伺服器角色的成員。 當 Database Engine 只使用 Windows Authentication 安裝 (SQL Server 驗證未啟用) 時, sa 登入仍然存在,但是密碼是複雜且隨機的。 如需啟用 sa 帳戶的詳細資訊,請參閱 變更伺服器驗證模式

SQL Server 個別服務 SID 登入和權限

個別服務 SID (有時也稱為服務安全性主體 (SID) ) ,SQL Server 服務會以登入的形式布建 Database Engine 。 個別服務 SID 登入是 系統管理員 (sysadmin) 固定伺服器角色的成員。 如需個別服務 SID 的詳細資訊,請參閱使用服務 SID 將權限授與 SQL Server 中的服務

SQL Server Agent 登入和權限

SQL Server Agent 服務的個別服務 SID 會以登入的形式布建 Database Engine 。 個別服務 SID 登入是 系統管理員 (sysadmin) 固定伺服器角色的成員。

Always On 可用性群組 和 SQL 容錯移轉叢集執行個體和權限

將 Database Engine 安裝為 Always On 可用性群組 或 SQL 容錯移轉叢集執行個體 (SQL FCI) 時,會在 中提供 LOCAL SYSTEM Database Engine。 LOCAL SYSTEM 登入會獲得授與 ALTER ANY AVAILABILITY GROUP 權限 (適用於 Always On 可用性群組) 和 VIEW SERVER STATE 權限 (適用於 SQL FCI)。

SQL 寫入器和權限

SQL Server VSS 寫入器服務的個別服務 SID 會以登入的形式布建 Database Engine 。 個別服務 SID 登入是 系統管理員 (sysadmin) 固定伺服器角色的成員。

SQL WMI 和權限

SQL Server設定會將 NT SERVICE\Winmgmt 帳戶布建為 Database Engine 登入,並將它新增至 系統管理員(sysadmin )固定伺服器角色。

SSRS 提供

安裝過程中指定的帳戶會做為 RSExecRole 資料庫角色的成員提供。 如需詳細資訊,請參閱《 設定報表伺服器服務帳戶 (SSRS 組態管理員)

SSAS 提供

SSAS 服務帳戶需求會依據您部署伺服器的方式而有所不同。 如果您要安裝 PowerPivot for SharePoint ,SQL Server 安裝程式會要求您將 Analysis Services 服務設定為以網域帳戶執行。 網域帳戶是支援 SharePoint 內建的受管理帳戶設備所需。 基於這個理由,SQL Server 安裝程式不會提供預設的服務帳戶(例如虛擬帳戶)來進行 PowerPivot for SharePoint 安裝。 如需佈建 Power Pivot for SharePoint 的詳細資訊,請參閱 設定 Power Pivot 服務帳戶

針對所有其他獨立 SSAS 安裝,您可以提供以網域帳戶、內建系統帳戶、受管理的帳戶或虛擬帳戶執行的服務。 如需佈建帳戶的詳細資訊,請參閱 設定服務帳戶 (Analysis Services)

針對叢集安裝,您必須指定網域帳戶或內建系統帳戶。 SSAS 容錯移轉叢集不支援受管理的帳戶,也不支援虛擬帳戶。

所有 SSAS 安裝會要求您指定 Analysis Services 執行個體的系統管理員。 系統管理員權限會在 Analysis Services Server 角色中提供。

SSRS 提供

安裝過程中指定的帳戶會在 Database Engine 中做為 RSExecRole 資料庫角色的成員提供。 如需詳細資訊,請參閱《 設定報表伺服器服務帳戶 (SSRS 組態管理員)

從舊版升級

本節說明從舊版 SQL Server 升級期間所做的變更。

  • SQL Server 2019 (15.x) 需要支援的 作業系統。 在較低的作業系統版本上執行的任何舊版 SQL Server 都必須先升級作業系統,才能升級 SQL Server。

  • 在的升級期間,會 SQL Server 2005 (9.x) SQL Server 2019 (15.x) 以下列方式設定 SQL Server 實例:

    • Database Engine 會以個別服務 SID 的安全性內容執行。 個別服務 SID 會被授與 SQL Server 實例 (的檔案資料夾的存取權,例如資料) 和 SQL Server 登入機碼。
    • Database Engine 的個別服務 SID 是在 Database Engine 中作為 系統管理員 (sysadmin) 固定伺服器角色的成員提供。
    • 除非 SQL Server 是容錯移轉叢集實例,否則個別服務 SID 會加入至本機 SQL Server Windows 群組。
    • SQL Server 的資源仍會布建到本機 SQL Server Windows 群組。
    • 服務的本機 Windows 群組已從 SQLServer2005MSSQLUser$ <電腦名稱> $ <執行個體名稱> 重新命名為 SQLServerMSSQLUser$ <電腦名稱> $ <執行個體名稱>。 遷移資料庫的檔案位置具有本機 Windows 群組 (ACE) 的存取控制專案。 新資料庫的檔案位置具有適用于每個服務 SID 的 ACE。
  • 從升級期間 SQL Server 2008 ,SQL Server 安裝程式會保存 SQL Server 2008 每個服務 SID 的 ACE。

  • 若為 SQL Server 容錯移轉叢集實例,則會保留針對服務所設定之網域帳戶的 ACE。

附錄

本節包含 SQL Server 服務的其他資訊。

服務帳戶的描述

服務帳戶是用來啟動 Windows 服務 (例如 SQL Server Database Engine) 的帳戶。 針對執行 SQL Server,除了服務 SID (永遠存在)以及 sysamin 固定伺服器角色的成員之外,還不需要將服務帳戶新增為 SQL Server 的登入。

可搭配任何作業系統使用的帳戶

除了前段所描述新的 MSAgMSA虛擬帳戶之外,下列帳戶都可以使用。

網域使用者帳戶

如果服務必須與網路服務互動,請存取網域資源(如檔案共用),或者如果它使用連結的伺服器連線來連接到執行 SQL Server 的其他電腦,您可能會使用最低許可權的網域帳戶。 許多伺服器對伺服器的活動只能以網域使用者帳戶執行。 這個帳戶應該由環境中的網域管理所預先建立。

注意

如果將 SQL Server 設定為使用網域帳戶,則可隔離服務的權限,不過必須手動管理密碼或建立自訂解決方案來管理這些密碼。 許多伺服器應用程式都是使用此策略來增強安全性,不過此策略需要額外的管理和複雜性。 在這些部署中,服務管理員會花相當多時間進行維護工作,例如管理 Kerberos 驗證所需的服務密碼和服務主要名稱 (SPN)。 此外,這些維護工作都可能干擾服務。

本機使用者帳戶

如果電腦不是網域的一部分,則建議不使用 Windows 系統管理員許可權的本機使用者帳戶。

本機服務帳戶

本機服務帳戶是一個內建帳戶,它對於資源和物件的存取層級與使用者群組的成員相同。 如果個別服務或處理序受到危害時,這種有限的存取權可協助保護系統的安全。 以本機服務帳戶執行的服務是以不含認證的 Null 工作階段來存取網路資源。

注意

SQL Server 或 SQL Server Agent 服務不支援本地服務帳戶。 執行這些服務的帳戶不支援本機服務,因為它是共用的服務,而在本機服務下執行的任何其他服務都會具有 SQL Server 的系統管理員存取權。 此帳戶的實際名稱是 NT AUTHORITY\LOCAL SERVICE

網路服務帳戶

網路服務帳戶是一個內建帳戶,它對於資源和物件所擁有的存取權高於使用者群組的成員。 以網路服務帳戶執行的服務,會利用電腦帳戶的認證 (格式為 <網域名稱> \ <電腦名稱> $ ) 存取網路資源。 此帳戶的實際名稱是 NT AUTHORITY\NETWORK SERVICE

本機系統帳戶

本機系統是權限非常高的內建帳戶。 它在本機系統上具有延伸的權限,並可當做網路上的電腦運作。 此帳戶的實際名稱是 NT AUTHORITY\SYSTEM

識別執行個體感知和執行個體非感知服務

實例感知的服務會與特定的 SQL Server 實例相關聯,並擁有自己的登錄 hive。 您可以針對每個元件或服務執行 SQL Server 安裝程式,以安裝實例感知服務的多個複本。 實例-不知道的服務會在所有已安裝的 SQL Server 實例之間共用。 它們不會與特定實例相關聯,只會安裝一次,而且無法並存安裝。

SQL Server 中的實例感知服務包括下列各項:

  • SQL Server

  • SQL Server Agent

    請注意, SQL Server Express 和 with Advanced Services 的實例上已停用 SQL Server Agent 服務 SQL Server Express 。

  • Analysis Services*

  • Reporting Services

  • 全文檢索搜尋

    SQL Server 中的實例感知服務包括下列各項:

  • Integration Services

  • SQL Server Browser

  • SQL 寫入器

*處於 SharePoint 整合模式中的 Analysis Services 會以單一具名執行個體的形式執行 'Power Pivot'。 執行個體名稱是固定的。 您無法指定不同的名稱。 在每個實體伺服器上,您只能安裝一個執行成 'Power Pivot' 的 Analysis Services 執行個體。

當地語系化服務名稱

下表將顯示 Windows 當地語系化版本所顯示的服務名稱。

Language 本機服務的名稱 網路服務的名稱 本機系統的名稱 管理群組的名稱
英文

簡體中文

繁體中文

韓文

日文
NT AUTHORITY\LOCAL SERVICE NT AUTHORITY\NETWORK SERVICE NT AUTHORITY\SYSTEM BUILTIN\Administrators
德文 NT-AUTORITÄT\LOKALER DIENST NT-AUTORITÄT\NETZWERKDIENST NT-AUTORITÄT\SYSTEM VORDEFINIERT\Administratoren
法文 AUTORITE NT\SERVICE LOCAL AUTORITE NT\SERVICE RÉSEAU AUTORITE NT\SYSTEM BUILTIN\Administrators
義大利文 NT AUTHORITY\SERVIZIO LOCALE NT AUTHORITY\SERVIZIO DI RETE NT AUTHORITY\SYSTEM BUILTIN\Administrators
西班牙文 NT AUTHORITY\SERVICIO LOC NT AUTHORITY\SERVICIO DE RED NT AUTHORITY\SYSTEM BUILTIN\Administradores
俄文 NT AUTHORITY\LOCAL SERVICE NT AUTHORITY\NETWORK SERVICE NT AUTHORITY\СИСТЕМА BUILTIN\Администраторы