設定 Windows 服務帳戶與權限
SQL Server 中的每項服務代表一個或一組處理序,用以管理 SQL Server 作業對 Windows 的驗證。 本主題描述此 SQL Server 版本中服務的預設組態,以及 SQL Server 安裝期間和之後可設定之 SQL Server 服務的組態選項。
目錄
本主題分成下列各節:
SQL Server 所安裝的服務
依據您決定安裝的元件而定,SQL Server 安裝程式會安裝下列服務:
SQL Server Database Services - SQL Server 關係型 資料庫引擎 的服務。 可執行檔為 <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>\120\DTS\Binn\MsDtsSrvr.exe
SQL Server Browser - 提供用戶端電腦 SQL Server 連線資訊的名稱解析服務。 可執行文件路徑為 c:\Program Files (x86)\Microsoft SQL Server\90\Shared\sqlbrowser.exe
全文搜索 - 快速在結構化和半結構化數據的內容和屬性上建立全文檢索索引,以提供 SQL Server 的文件篩選和斷詞功能。
SQL 寫入器 - 允許備份和還原應用程式在磁碟區陰影複製服務 (VSS) 架構中運作。
SQL Server Distributed Replay Controller - 跨多個 Distributed Replay 用戶端電腦提供追蹤重新執行協調流程。
SQL Server Distributed Replay Client - 一或多部與 Distributed Replay Controller 搭配運作的 Distributed Replay 用戶端計算機,針對 SQL Server 實例模擬並行工作負載 資料庫引擎。
服務屬性和組態
用來啟動並執行 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 Server Distributed Replay Controller | NETWORK SERVICE | 虛擬帳戶 * |
SQL Server Distributed Replay Client | NETWORK SERVICE | 虛擬帳戶 * |
FD 啟動器 (全文檢索搜尋) | LOCAL SERVICE | 虛擬帳戶 |
SQL Server Browser | LOCAL SERVICE | LOCAL SERVICE |
SQL Server VSS Writer | LOCAL SYSTEM | LOCAL SYSTEM |
* 需要 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 資料庫引擎或 SQL Server Agent 服務所用的帳戶,或是變更帳戶的密碼。 除了變更帳戶名稱之外,SQL Server 組態管理員也會執行其他組態,例如,更新 Windows 本機安全存放區,它會保護資料庫引擎的服務主要金鑰。 Windows 服務控制管理員等其他工具可以變更帳戶名稱,但不會變更所有必要的設定。
- 針對您在 SharePoint 伺服器陣列中部署的 Analysis Services 實例,請一律使用 SharePoint 管理中心來變更 PowerPivot 服務應用程式和 Analysis Services 服務的伺服器帳戶。 當您使用管理中心時,相關聯的設定和權限都會更新為使用新的帳戶資訊。
- 若要變更 Reporting Services 選項,請使用 Reporting Services 組態工具。
Windows 7 和 Windows Server 2008 R2 可用的新帳戶類型
Windows 7 和 Windows Server 2008 R2 有兩種稱為受控服務帳戶 (MSA) 和虛擬帳戶的新服務帳戶。 受控服務帳戶和虛擬帳戶的設計目的是為 SQL Server 等重要應用程式提供自己的帳戶隔離,同時不需要系統管理員手動管理這些帳戶的服務主體名稱(SPN)和認證。 這些可讓服務帳戶用戶、密碼和SPN的長期管理變得更容易。
-
受控服務帳戶 (MSA) 是域控制器所建立和管理的網域帳戶類型。 這個帳戶會指派給執行服務的單一成員電腦使用。 密碼是由網域控制站自動管理。 您無法使用 MSA 來登入計算機,但電腦可以使用 MSA 來啟動 Windows 服務。 MSA 能夠向 Active Directory 註冊服務主體名稱(SPN)。 MSA 會以 $ 後綴命名,例如 DOMAIN\ACCOUNTNAME$。 指定 MSA 時,請將密碼保留空白。 因為 MSA 已指派給單一計算機,所以無法在 Windows 叢集的不同節點上使用它。
注意
網域管理員必須先在 Active Directory 中建立 MSA,SQL Server 安裝程式才能將其用於 SQL Server 服務。
-
群組受控服務帳戶是多部伺服器的 MSA。 Windows 會為伺服器群組上執行的服務管理服務。 Active Directory 會自動更新群組受管理的服務帳戶密碼,而不需要重新啟動服務。 您可以將 SQL Server 服務設定為使用群組受控服務帳戶主體。從 SQL Server 2014 開始,SQL Server 支援獨立實例的群組受控服務帳戶。
若要針對 SQL Server 2014 或更新版本使用群組受管理的服務帳戶,操作系統必須是 Windows Server 2012 R2 或更新版本。 具有 Windows Server 2012 R2 的伺服器需要 套用 KB 2998082 ,以便服務可以在密碼變更後立即登入,而不會中斷。
如需詳細資訊,請參閱 群組受管理的服務帳戶
注意
群組受控服務帳戶必須由網域管理員在 Active Directory 中建立,SQL Server 安裝程式才能將它用於 SQL Server 服務。
-
虛擬帳戶 (從 Windows Server 2008 R2 和 Windows 7 開始) 為「受管理的本機帳戶」 ,並會提供下列功能來簡化服務管理工作。 虛擬帳戶是自動管理的,而且虛擬帳戶可以在網域環境中存取網路。 如果在 SQL Server 設定期間使用服務帳戶的預設值,則會使用實例名稱作為服務名稱的虛擬帳戶,格式為 NT SERVICE\<SERVICENAME。> 以虛擬帳戶身分執行的服務會使用計算機帳戶的認證來存取網路資源,格式為 <domain_name><\computer_name。>$ 指定虛擬帳戶啟動 SQL Server 時,請讓密碼空白。 如果虛擬帳戶無法註冊服務主要名稱 (SPN),請手動註冊 SPN。 如需手動註冊 SPN 的詳細資訊,請參閱 手動 SPN 註冊。
注意
虛擬帳戶無法用於 SQL Server 故障轉移叢集實例,因為虛擬帳戶在叢集的每個節點上不會有相同的 SID。
下表列出虛擬帳戶名稱的範例。
服務 虛擬帳戶名稱 資料庫引擎服務的預設執行個體 NT SERVICE\MSSQLSERVER 名為 PAYROLL 之 資料庫引擎 服務的具名實例 NT SERVICE\MSSQL$PAYROLL 預設 SQL Server 執行個體上的 SQL Server Agent 服務 NT SERVICE\SQLSERVERAGENT SQL Server 實例上的 SQL Server Agent 服務,名為 PAYROLL NT SERVICE\SQLAGENT$PAYROLL
如需受控服務帳戶和虛擬帳戶的詳細資訊,請參閱服務帳戶逐步指南和受控服務帳戶常見問題(FAQ)的受控服務帳戶和虛擬帳戶概念一節。
安全性注意事項: 一律使用最低的可能用戶權力來執行 SQL Server 服務。 盡可能使用 MSA 或虛擬帳戶。 當 MSA 和虛擬帳戶無法執行時,請使用特定的低許可權用戶帳戶或網域帳戶,而不是 SQL Server 服務的共享帳戶。 針對不同的 SQL Server 服務使用個別的帳戶。 請勿將其他許可權授與 SQL Server 服務帳戶或服務群組。 許可權會透過群組成員資格授與,或直接授與服務 SID,其中支援服務 SID。
自動啟動
除了具有使用者帳戶之外,每項服務有三個可能的啟動狀態供使用者控制:
已 停用 此服務已安裝,但目前未執行。
手動 安裝服務,但只會在另一個服務或應用程式需要其功能時啟動。
自動 服務會自動由作業系統啟動。
啟動狀態會在安裝過程中選取。 安裝具名執行個體時,SQL Server Browser 服務應該設定為自動啟動。
在自動安裝期間設定服務
下表顯示可以在安裝期間設定的 SQL Server 服務。 若為自動安裝,您可以在組態檔案中或從命令提示字元使用這些參數。
SQL Server 服務名稱 | 自動安裝的參數 1 |
---|---|
MSSQLSERVER | SQLSVCACCOUNT、SQLSVCPASSWORD、SQLSVCSTARTUPTYPE |
SQLServerAgent2 | AGTSVCACCOUNT、AGTSVCPASSWORD、AGTSVCSTARTUPTYPE |
MSSQLServerOLAPService | ASSVCACCOUNT、ASSVCPASSWORD、ASSVCSTARTUPTYPE |
ReportServer | RSSVCACCOUNT、RSSVCPASSWORD、RSSVCSTARTUPTYPE |
Integration Services | ISSVCACCOUNT、ISSVCPASSWORD、ISSVCSTARTUPTYPE |
SQL Server Distributed Replay Controller | DRU_CTLR、CTLRSVCACCOUNT、CTLRSVCPASSWORD、CTLRSTARTUPTYPE、CTLRUSERS |
SQL Server Distributed Replay Client | DRU_CLT、CLTSVCACCOUNT、CLTSVCPASSWORD、CLTSTARTUPTYPE、CLTCTLRNAME、CLTWORKINGDIR、CLTRESULTDIR |
1如需自動安裝的詳細資訊和範例語法,請參閱 從命令提示字元安裝 SQL Server 2014。
2SQL Server Agent 服務會在 SQL Server Express 和 SQL Server Express with Advanced Services 的實例上停用。
防火牆埠
大部分的情況下,在初始安裝時,資料庫引擎可以藉由像是與 SQL Server 安裝在同一部電腦上的 SQL Server Management Studio 這類工具進行連接。 SQL Server 安裝程式不會在 Windows 防火牆中開啟埠。 除非將資料庫引擎設定為在 TCP 通訊埠上接聽,而且已在 Windows 防火牆中開啟適當的通訊埠進行連接,否則無法從其他電腦連接。 如需詳細資訊,請參閱 設定 Windows 防火牆以允許 SQL Server 存取。
服務許可權
本節描述 SQL Server 安裝程序針對 SQL Server 服務之個別服務 SID 設定的許可權。
服務組態和 存取控制
SQL Server 2014 可針對每個服務啟用個別服務 SID,以提供深入的服務隔離和防禦。 每個服務 SID 都是衍生自服務名稱,而且是該服務專用的。 例如,資料庫引擎 服務的服務 SID 名稱可能是 NT Service\MSSQL$<InstanceName。> 服務隔離可讓服務存取特定物件,而不需要以高權限帳戶執行或降低物件的安全性保護。 SQL Server 服務可以透過使用包含服務 SID 的存取控制項目,來限制其資源的存取權。
注意
在 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 7 的遠端伺服器管理工具。
下表顯示 SQL Server 安裝程式要求 SQL Server 元件所使用之個別服務 SID 或本機 Windows 群組需要有的權限。
SQL Server 服務 | SQL Server 安裝程式授與的權限 |
---|---|
SQL Server 資料庫引擎: (所有許可權都會授與個別服務 SID。默認實例: NT SERVICE\MSSQLSERVER。具名實例:**NT SERVICE\MSSQL$**InstanceName.) |
以服務方式登入 (SeServiceLogonRight) 取代處理序層級 Token (SeAssignPrimaryTokenPrivilege) 略過周遊檢查 (SeChangeNotifyPrivilege) 調整處理序的記憶體配額 (SeIncreaseQuotaPrivilege) 啟動 SQL 寫入器的權限 讀取事件記錄檔服務的權限 讀取遠端程序呼叫服務的權限 |
SQL Server Agent:1 (所有許可權都會授與個別服務 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) 調整進程的 記憶體配額 (SeIncreaseQuotaSizePrivilege) 鎖定記憶體中的分頁 (SeLockMemoryPrivilege) - 這只有在分頁完全關閉時才需要。 僅限容錯移轉叢集安裝: 增加排程優先順序 (SeIncreaseBasePriorityPrivilege) |
SSRS: (所有許可權都會授與個別服務 SID。默認實例: NT SERVICE\ReportServer。具名實例: NT SERVICE\$InstanceName.) |
以服務方式登入 (SeServiceLogonRight) |
SSIS: (所有許可權都會授與個別服務 SID。默認實例和具名實例: NT SERVICE\MsDtsServer120。Integration Services 沒有具名實例的個別程式。 |
以服務方式登入 (SeServiceLogonRight) 寫入應用程式事件記錄檔的權限。 略過周遊檢查 (SeChangeNotifyPrivilege) 在驗證之後模擬用戶端 (SeImpersonatePrivilege) |
全文檢索搜尋: (所有許可權都會授與個別服務 SID。默認實例: NT Service\MSSQLFDLauncher。具名實例: NT Service\ MSSQLFDLauncher$InstanceName.) |
以服務方式登入 (SeServiceLogonRight) 調整處理序的記憶體配額 (SeIncreaseQuotaPrivilege) 略過周遊檢查 (SeChangeNotifyPrivilege) |
SQL Server Browser: (所有權利都授與給本機 Windows 群組。默認或具名實例: SQLServer2005SQLBrowserUser$ComputerName。SQL Server Browser 沒有具名實例的個別進程。 |
以服務方式登入 (SeServiceLogonRight) |
SQL Server VSS Writer: (所有許可權都會授與個別服務 SID。默認或具名實例: NT Service\SQLWriter。SQL Server VSS 寫入器沒有具名實例的個別程式。 |
SQLWriter 服務會在具有所有必要許可權的 LOCAL SYSTEM 帳戶下執行。 SQL Server 安裝程式不會檢查或授與此服務的許可權。 |
SQL Server Distributed Replay Controller: | 以服務方式登入 (SeServiceLogonRight) |
SQL Server Distributed Replay Client: | 以服務方式登入 (SeServiceLogonRight) |
1SQL Server Express 實例上已停用 SQL Server Agent 服務。
授與 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 | 完整控制 | |
120\shared | 讀取、執行 | |
Instid\MSSQL\Template Data (僅限 SQL Server Express) | Read | |
SQLServerAgent1 | Instid\MSSQL\binn | 完整控制 |
Instid\MSSQL\binn | 完整控制 | |
Instid\MSSQL\Log | 讀取、寫入、刪除、執行 | |
120\com | 讀取、執行 | |
120\shared | 讀取、執行 | |
120\shared\Errordumps | 讀取、寫入 | |
ServerName\EventLog | 完整控制 | |
FTS | Instid\MSSQL\FTData | 完整控制 |
Instid\MSSQL\FTRef | 讀取、執行 | |
120\shared | 讀取、執行 | |
120\shared\Errordumps | 讀取、寫入 | |
Instid\MSSQL\Install | 讀取、執行 | |
Instid\MSSQL\jobs | 讀取、寫入 | |
MSSQLServerOLAPService | 120\shared\ASConfig | 完整控制 |
Instid\OLAP | 讀取、執行 | |
Instid\Olap\Data | 完整控制 | |
Instid\Olap\Log | 讀取、寫入 | |
Instid\OLAP\Backup | 讀取、寫入 | |
Instid\OLAP\Temp | 讀取、寫入 | |
120\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\ReportManager | 讀取、執行 | |
Instid\Reporting Services\RSTempfiles | 讀取、寫入、執行、刪除 | |
120\shared | 讀取、執行 | |
120\shared\Errordumps | 讀取、寫入 | |
MSDTSServer100 | 120\dts\binn\MsDtsSrvr.ini.xml | 參閱 |
120\dts\binn | 讀取、執行 | |
120\shared | 讀取、執行 | |
120\shared\Errordumps | 讀取、寫入 | |
SQL Server Browser | 120\shared\ASConfig | 參閱 |
120\shared | 讀取、執行 | |
120\shared\Errordumps | 讀取、寫入 | |
SQLWriter | N/A (以本機系統執行) | |
User | Instid\MSSQL\binn | 讀取、執行 |
Instid\Reporting Services\ReportServer | 讀取、執行、列出資料夾內容 | |
Instid\Reporting Services\ReportServer\global.asax | 讀取 | |
Instid\Reporting Services\ReportManager | 讀取、執行 | |
Instid\Reporting Services\ReportManager\pages | 參閱 | |
Instid\Reporting Services\ReportManager\Styles | 參閱 | |
120\dts | 讀取、執行 | |
120\tools | 讀取、執行 | |
100\tools | 讀取、執行 | |
90\tools | 讀取、執行 | |
80\tools | 讀取、執行 | |
120\sdk | 參閱 | |
Microsoft SQL Server\120\Setup Bootstrap | 讀取、執行 | |
SQL Server Distributed Replay Controller | <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 Server Distributed Replay Client | <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 | 讀取、執行、列出資料夾內容 |
1SQL Server Express 和 SQL Server Express With Advanced Services 實例上會停用 SQL Server Agent 服務。
當資料庫檔案儲存於使用者定義的位置時,您必須授與個別服務 SID 對該位置的存取權。 如需將檔案系統權限授與個別服務 SID 的詳細資訊,請參閱 設定 Database Engine 對檔案系統的存取權限。
授與其他 Windows 使用者帳戶或群組的文件系統許可權
某些存取控制權限可能必須授與給內建帳戶或其他 SQL Server 服務帳戶。 下表列出 SQL Server 安裝程式所設定的其他 ACL。
要求元件 | 帳戶 | 資源 | 權限 |
---|---|---|---|
MSSQLServer | 效能記錄使用者 | Instid\MSSQL\binn | 列出資料夾內容 |
效能監視器使用者 | Instid\MSSQL\binn | 列出資料夾內容 | |
效能記錄使用者、效能監視器使用者 | \WINNT\system32\sqlctr120.dll | 讀取、執行 | |
僅限管理員 | \\.\root\Microsoft\SqlServer\ServerEvents\<sql_instance_name>1 | 完整控制 | |
管理員,系統 | \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\ReportManager, <install>\Reporting Services\ReportManager\Pages\*.*, <install\Reporting Services\ReportManager\Styles\*.*, <install>>\Reporting Services\ReportManager\webctrl_client\1_0\*.* | 讀取、執行 | |
報表伺服器 Windows 服務帳戶 | <install>\Reporting Services\ReportServer | 讀取 | |
報表伺服器 Windows 服務帳戶 | <install>\Reporting Services\ReportServer\global.asax | 完整 | |
所有人 | <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 刪除 讀取控制 |
1這是 WMI 提供者命名空間。
與異常磁碟位置相關的文件系統許可權
安裝位置的預設磁碟驅動器是 systemdrive,通常是磁碟驅動器 C。安裝tempdb或用戶資料庫時
非預設磁碟驅動器
當安裝到非預設磁碟驅動器的本機磁碟驅動器時,個別服務 SID 必須具有檔案位置的存取權。 SQL Server 安裝程式會布建必要的存取權。
網路共用
將資料庫安裝到網路共用時,服務帳戶必須能夠存取使用者和tempdb資料庫的檔案位置。 SQL Server 安裝程式無法布建網路共用的存取權。 在執行安裝程式之前,使用者必須先為服務帳戶提供 tempdb 位置的存取。 使用者在建立資料庫之前,必須先提供使用者資料庫位置的存取。
注意
虛擬帳戶無法對遠端位置驗證。 所有虛擬帳戶都使用電腦帳戶的權限。 以domain_name computer_name>\$><格式<布建計算機帳戶。
檢閱其他考慮
下表顯示 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 來只微調他們所擁有的那些資料表。 如需詳細資訊,請參閱《SQL Server 在線叢書》中的<初始化 資料庫引擎 Tuning Advisor on First Use>。 |
重要
升級 SQL Server 之前,請啟用 SQL Server Agent 的 Windows 驗證,並確認必要的預設組態:SQL Server Agent 服務帳戶是 SQL Serverysadmin 群組的成員。
登錄許可權
登錄區是在 HKLM\Software\Microsoft\Microsoft SQL Server\<Instance_ID>下建立,以供實例感知元件使用。 例如:
HKLM\Software\Microsoft\Microsoft SQL Server\MSSQL12。MyInstance
HKLM\Software\Microsoft\Microsoft SQL Server\MSASSQL12。MyInstance
HKLM\Software\Microsoft\Microsoft SQL Server\MSSQL.120
登錄也會維護執行個體識別碼到執行個體名稱的對應。 執行個體識別碼到執行個體名稱的對應維護如下:
[HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\Instance Names\SQL]“InstanceName”=“MSSQL12”
[HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\Instance Names\OLAP]“InstanceName”=“MSASSQL12”
[HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\Instance Names\RS]“InstanceName”=“MSRSSQL12”
WMI
Windows Management Instrumentation (WMI) 必須能夠連接到資料庫引擎。 為了支援此功能,Windows WMI 提供者 (NT SERVICE\winmgmt) 的個別服務 SID 會布建在 資料庫引擎 中。
SQL WMI 提供者需要下列許可權:
msdb 資料庫中db_ddladmin或db_owner固定資料庫角色的成員資格。
伺服器中的CREATE DDL EVENT NOTIFICATION 權限。
資料庫引擎中的 CREATE TRACE EVENT NOTIFICATION 權限。
VIEW ANY DATABASE 伺服器層級權限。
SQL Server 安裝程式會建立 SQL WMI 命名空間,並且將讀取權限授與 SQL Server Agent 服務 SID。
具名管道
在所有安裝中,SQL Server 安裝程式都會透過共用記憶體通訊協定 (它是本機具名管道) 來提供 SQL Server 資料庫引擎的存取權。
佈建
本節描述如何在各種 SQL Server 元件內佈建帳戶。
資料庫引擎 布建
下列帳戶會新增為 SQL Server 資料庫引擎中的登入。
Windows 主體
在安裝期間,SQL Server 安裝程式至少需要將一個使用者帳戶命名為 sysadmin 固定伺服器角色的成員。
sa 帳戶
sa 帳戶一律做為資料庫引擎登入存在,而且是 sysadmin 固定伺服器角色的成員。 使用 Windows 驗證安裝 資料庫引擎 時(也就是未啟用 SQL Server 驗證時),sa 登入仍然存在,但已停用。 如需啟用 sa 帳戶的詳細資訊,請參閱 變更伺服器驗證模式。
SQL Server 個別服務 SID 登入和許可權
SQL Server 服務的個別服務 SID 會布建為 資料庫引擎 登入。 個別服務 SID 登入是 系統管理員 (sysadmin) 固定伺服器角色的成員。
SQL Server Agent 登入和許可權
SQL Server Agent 服務的個別服務 SID 會做為資料庫引擎登入來加以佈建。 個別服務 SID 登入是 系統管理員 (sysadmin) 固定伺服器角色的成員。
AlwaysOn 可用性群組和 SQL 故障轉移叢集實例和許可權
將 資料庫引擎 安裝為 AlwaysOn 可用性群組或 SQL 故障轉移叢集實例(SQL FCI)時,本機系統會在 資料庫引擎 中布建。 LOCAL SYSTEM 登入被授與 ALTER ANY AVAILABILITY GROUP 許可權(適用於 AlwaysOn 可用性群組)和 VIEW SERVER STATE 許可權(適用於 SQL FCI)。
SQL 寫入器和許可權
SQL Server VSS 寫入器服務的個別服務 SID 會做為資料庫引擎登入來加以佈建。 個別服務 SID 登入是 系統管理員 (sysadmin) 固定伺服器角色的成員。
SQL WMI 和許可權
SQL Server 安裝程式會將 NT SERVICE\Winmgmt 帳戶布建為 資料庫引擎 登入,並將其新增至 sysadmin 固定伺服器角色。
SSRS 布建
安裝過程中指定的帳戶會做為 RSExecRole 資料庫角色的成員提供。 如需詳細資訊,請參閱設定報表伺服器服務帳戶 (SSRS 組態管理員)。
SSAS 布建
SSAS 服務帳戶需求會依據您部署伺服器的方式而有所不同。 如果您要安裝 PowerPivot for SharePoint,SQL Server 安裝程式會要求您設定 Analysis Services 服務以在網域帳戶下執行。 網域帳戶是支援 SharePoint 內建的受管理帳戶設備所需。 基於這個理由,SQL Server 安裝程式不會提供 PowerPivot for SharePoint 安裝的預設服務帳戶,例如虛擬帳戶。 如需布建 PowerPivot for SharePoint 的詳細資訊,請參閱 設定 PowerPivot 服務帳戶。
針對所有其他獨立 SSAS 安裝,您可以提供以網域帳戶、內建系統帳戶、受管理的帳戶或虛擬帳戶執行的服務。 如需帳戶佈建的詳細資訊,請參閱設定服務帳戶 (Analysis Services)。
針對叢集安裝,您必須指定網域帳戶或內建系統帳戶。 SSAS 容錯移轉叢集不支援受管理的帳戶,也不支援虛擬帳戶。
所有 SSAS 安裝都會要求您指定 Analysis Services 執行個體的系統管理員。 系統管理員權限會在 Analysis Services Server 角色中提供。
SSRS 布建
安裝期間所指定的帳戶會在資料庫引擎中做為 RSExecRole 資料庫角色的成員來加以佈建。 如需詳細資訊,請參閱設定報表伺服器服務帳戶 (SSRS 組態管理員)。
從舊版升級
本節描述從舊版 SQL Server 中升級期間所做的變更。
SQL Server 2014 需要 Windows Server 2008 R2 SP1、Windows Server 2012、Windows 8.0、Windows Server 2012 R2 或 Windows 8.1。 在較低作業系統版本上執行的任何舊版 SQL Server 都必須先將作業系統升級,才能升級 SQL Server。
在將 SQL Server 2005 升級至 SQL Server 2014 期間,SQL Server 安裝程式會以下列方式設定 SQL Server。
資料庫引擎會以個別服務 SID 的安全性內容執行。 個別服務 SID 會獲得存取 SQL Server 執行個體的檔案資料夾 (例如 DATA) 和 SQL Server 登錄機碼的權限。
資料庫引擎的個別服務 SID 會在資料庫引擎中作為 sysadmin 固定伺服器角色的成員來加以佈建。
除非 SQL Server 是故障轉移叢集實例,否則個別服務的 SID 會新增至本機 SQL Server Windows 群組。
SQL Server 資源仍然會佈建至本機 SQL Server Windows 群組。
服務的本機 Windows 群組會從 SQLServer2005MSSQLUser$<computer_name instance_name<$>> 重新命名為 SQLServerMSSQLUser$<computer_name instance_name。>$<> 已移轉資料庫的檔案位置將會有本機 Windows 群組的 存取控制 專案 (ACE)。 新資料庫的檔案位置將會有適用於個別服務 SID 的 ACE。
從 SQL Server 2008 升級期間,SQL Server 安裝程式將會保留每個服務 SID 之 SQL Server 2008 的 ACE。
針對 SQL Server 故障轉移叢集實例,將會保留針對服務設定之網域帳戶的 ACE。
附錄
本節包含有關 SQL Server 服務的其他資訊。
服務帳戶的描述
服務帳戶是用來啟動 Windows 服務 (例如 SQL Server 資料庫引擎) 的帳戶。
任何操作系統可用的帳戶
除了稍早所述的新 MSA 和 虛擬帳戶 之外,也可以使用下列帳戶。
如果此服務必須與網路服務互動,請存取檔案共用等網域資源。如果它使用執行 SQL Server 之其他電腦的連結的伺服器連接,您可能會使用最低權限的網域帳戶。 許多伺服器對伺服器的活動只能以網域使用者帳戶執行。 這個帳戶應該由環境中的網域管理所預先建立。
注意
如果您將應用程式設定為使用網域帳戶,您可以隔離應用程式的許可權,但必須手動管理密碼或建立自定義解決方案來管理這些密碼。 許多伺服器應用程式使用這項策略強化安全性,但是這項策略需要其他的管理,也更加複雜。 在這些部署中,服務系統管理員在維護工作花費的時間量,例如管理服務密碼並為主要名稱 (SPN) 服務 (Kerberos 驗證需要)。 另外,這些維護工作會破壞服務。
如果計算機不是網域的一部分,建議使用沒有 Windows 系統管理員許可權的本機用戶帳戶。
本機服務帳戶是一個內建帳戶,它對於資源和物件的存取層級與使用者群組的成員相同。 如果個別服務或處理序受到危害時,這種有限的存取權可協助保護系統的安全。 以本地服務帳戶身分執行的服務會以 Null 作業階段的形式存取網路資源,而不需要認證。 請注意,SQL Server 或 SQL Server Agent 服務不支援本地服務帳戶。 不支援本地服務作為執行這些服務的帳戶,因為它是共用服務,而在本機服務下執行的任何其他服務都會有系統管理員存取 SQL Server 的存取權。 帳戶的實際名稱是 NT AUTHORITY\LOCAL SERVICE。
網路服務帳戶是一個內建帳戶,它對於資源和物件所擁有的存取權高於使用者群組的成員。 以網路服務帳戶身分執行的服務會使用計算機帳戶的認證,以domain_name computer_name>\$><格式<存取網路資源。 帳戶的實際名稱是 NT AUTHORITY\NETWORK SERVICE。
本機系統是權限非常高的內建帳戶。 它在本機系統上具有延伸的權限,並可當做網路上的電腦運作。 此帳戶的實際名稱是 NT AUTHORITY\SYSTEM。
識別實例感知和 Instance-Unaware 服務
執行個體感知服務會與特定的 SQL Server 執行個體產生關聯,而且會有自己的登錄區。 您可以針對每一個元件或服務執行 SQL Server 安裝程式,以安裝執行個體感知服務的多個複本。 執行個體非感知服務會在所有安裝的 SQL Server 執行個體之間共用。 它們不會與特定實例相關聯,只會安裝一次,且無法並存安裝。
SQL Server 中的執行個體感知服務包含以下項目:
SQL Server
SQL Server Agent
請注意,SQL Server Agent 服務已在 SQL Server Express 和 SQL Server Express with Advanced Services 的執行個體上停用。
Analysis Services 1
Reporting Services
全文檢索搜尋
SQL Server 中的執行個體非感知服務包含以下項目:
Integration Services
SQL Server Browser
SQL 寫入器
1SharePoint 整合模式中的 Analysis Services 會以 'PowerPivot' 作為單一具名實例執行。 執行個體名稱是固定的。 您無法指定不同的名稱。 您只能在每個實體伺服器上安裝一個以 『PowerPivot』 身分執行的 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\SYSTEM | BUILTIN\Администраторы |