[SQL SERVER][Memo]關於SQL Server Service Account 這檔事

[SQL SERVER][Memo]關於SQL Server Service Account 這檔事

今天其他廠商因為 SQL Server Service Account 權限問題而導致資料庫無法開啟,

當時我在ErrorLOG和EventLog看到下列錯誤訊息:

image

image

image

image

 

我看完Errorlog馬上檢查SQL Server Service Account權限是否正確,

而這錯誤確實因為 SQL Server Service Account 權限不足所導致,

當我和該廠商告知請他針對該帳戶給予適當權限後,

誰知廠商快手竟把Account直接換為Domain Admin(@@~~我暈),

所以這篇我來聊聊SQL Server Service Account 的選擇。

 

請注意:修改SQL Server Account 請一率使用SQL Server 組態管理員。

 

網域使用帳戶(Domain User Account):

如果 SQL Server 有和其他Server或服務存在任何網路溝通(Linked Server、File Server …等),

那可以建立最小權限網域帳戶來執行SQL Server,

而這也是我比較建議的帳戶類型。

 

本機使用帳戶(Local User Account):

如果 SQL Server 沒有和其他 Server 或服務存在任何網路溝通(Linked Server、File Server …等),

那可以建立最小權限本機帳戶來執行SQL Server。

 

本機服務帳戶(Local Service Account):

不支援 SQL Server Service  和 Agent,

所以也無法使用該帳戶來執行。

 

網路服務帳戶(Network Service Account):

該帳戶對於網路資源和物件存取的權限高於使用者群組中的成員,

所以基本上也不應該使用該帳戶來執行SQL Server。

 

本機系統帳戶(Local System Account):

絕對不要使用Local System Account來執行 SQL Server,

因為該帳戶算是本機內建帳戶權限最高的,同時也具有額外延伸的權限,

當SQL Server要使用該帳戶時,請好好仔細思考一下安全性議題。

 

 

結論:

不管任何SQL Server Service只給予最小權限,

依服務類別給予適當權限(清單資料夾內容、讀取、執行、寫入..等),

永遠不要給予過多權限,而不是為了方便一股腦給於 Administrators group 權限。

 

 

 

參考

設定 Windows 服務帳戶與權限

SQL Server 安裝的安全性考量

可用來在 SQL Server 2005 中執行 SQL Server 代理程式服務的 Windows 帳戶類型

Guidelines on choosing Service Accounts for SQL Server Services.