核心原則
資料庫安全始於安裝當下。最小權限、深度防禦、及時修補 三大支柱貫穿全生命週期。
安裝前必做兩件事
- 設定強式 SA 密碼:安裝精靈會建立 `sa` 並預設空密碼。務必在安裝過程或緊接著設定複雜密碼(長度 ≥ 16、含大小寫/數字/符號)。
- 套用最新 Service Pack / 累積更新:上線前務必修補至最新版本。Slammer 蠕蟲 (2003) 利用未修補的 SQL Server 2000 SP3a 之前漏洞(CVE-2002-0649),15 秒感染全網。至今仍有未修補主機被掃描利用。
帳號與認證模式
建立專屬管理帳號
- 不要日常使用 `sa`。建立具名帳號(如 `sql_admin_01`),加入 `sysadmin` 固定伺服器角色。
- 啟用密碼原則強制(`CHECK_POLICY=ON`、`CHECK_EXPIRATION=ON`)。
認證模式選擇
| 模式 | 特性 | 建議場景 |
| Windows 驗證 (整合式) | 單一身分識別、Kerberos/NTLM、密碼原則由 AD 統管、無密碼在網路傳輸、支援雙因子 | 企業內網首選,安全性最高、管理最簡 |
| 混合模式 | 同時支援 Windows 與 SQL Server 登入、SQL 登入密碼獨立儲存於 master、需雙重輸入 | 舊版應用相容、非網域環境、跨網域/雲端連線 |
強烈建議: 能用 Windows 驗證就不用混合模式。若必須混合,嚴格管控 SQL 登入帳號數量與權限。
Slammer 蠕蟲歷史教訓
- 利用 Resolution Service (UDP 1434) 緩衝區溢位,無需驗證即可遠端執行代碼。
- SP3/SP3a 已修補,但修補發布 6 個月後仍大量主機受害,主因:未修補、直接暴露網路、無防火牆。
- 道德責任:連網前必須修補,否則你會成為攻擊跳板危害他人。
持續防護清單
- [ ] 訂閱 Microsoft Security Bulletin / SQL Server Release Notes 郵件通知。
- [ ] 建立修補流程:測試環境驗證 → 排程生產套用 → 事後確認版本號。
- [ ] 停用/移除未使用的服務(SQL Server Agent、Browser、Full Text 等)。
- [ ] 封鎖 UDP 1434、TCP 1433 對外存取(僅允許應用伺服器 IP)。
- [ ] 啟用登入審計(失敗/成功),定期審閱錯誤記錄與預設追蹤。
結語
安全不是一次性動作,而是持續的流程。從安裝那一刻起,每個決策都影響最終防禦深度。