前言
預設情況下 SQL Server Agent 使用 Local System 帳號啟動。企業環境為了權限管控、稽核追蹤或跨伺服器存取 (如備份至網路磁碟),常需改用網域帳號。本文詳述依賴關係、權限原理與逐步設定畫面。
一、理解服務依賴與啟動原理
1. 服務依賴關係
SQL Server Agent 依賴 SQL Server (MSSQLSERVER) 服務。Agent 必須在 SQL Server 啟動後才能啟動。

2. 預設啟動帳號:Local System

Local System (NT AUTHORITY\SYSTEM) 為高權限內建帳號,具備本機完整控制權,並以電腦身分存取網路資源。
3. 為何 Local System 能啟動 Agent?
在 SQL Server 伺服器角色中,NT AUTHORITY\SYSTEM 內建為 sysadmin 固定伺服器角色成員。

sysadmin:可在伺服器執行任何活動。預設 BUILTIN\Administrators (本地管理員群組) 亦為成員。
參考文件:固定伺服器角色 (MSDN)
二、設定網域帳號啟動 Agent 步驟
步驟 1:將網域帳號加入 sysadmin 角色
- 開啟 SSMS,連線至執行個體。
- 展開 安全性 → 伺服器角色 → sysadmin,右鍵選「屬性」。
- 點選「加入」,輸入網域帳號 (格式:
DOMAIN\username),確定。

步驟 2:變更 SQL Server Agent 服務登入帳號
- 開啟 SQL Server Configuration Manager。
- 選取 SQL Server 服務,右鍵 SQL Server Agent → 屬性。
- 切換至 登入 索引標籤,選「這個帳號」,輸入網域帳號與密碼。
- 確定後,重新啟動 SQL Server Agent 服務。

三、驗證與常見問題
- ✅ Agent 服務狀態顯示「執行中」,錯誤記錄無啟動失敗訊息。
- ✅ 能正常執行排程工作、備份維護計畫。
- ❌ 登入失敗:確認密碼正確、帳號未鎖定、密碼未過期。
- ❌ 權限不足:網域帳號必須為 SQL 執行個體的 sysadmin;若需存取網路共享,帳號仍需具備該共享的 NTFS/共享權限。
- ❌ SPN 問題:跨網域/負載平衡環境可能需註冊 SPN (setspn -A MSSQLSvc/hostname:port DOMAIN\account)。
四、相關參考文件
五、總結
核心邏輯:服務帳號 = 作業系統層級身分 → sysadmin 角色 = SQL Server 層級權限。兩者缺一不可。完成上述兩步驟,即可安全地以網域帳號運行 SQL Server Agent,滿足企業合規與自動化運維需求。