資料庫伺服器是企業核心資產集中地,安全防護容不得半點馬虎。本文依據微軟最佳實務,彙整 SQL Server 2000 安全強化的十大關鍵步驟,涵蓋修補程式、基線掃描、驗證模式、物理隔離、帳號管理、服務權限、網路封鎖、檔案系統、安裝檔清理與連線稽核,建立纵深防禦體系。
十大安全強化步驟
1. 套用最新 Service Pack 與安全更新
- 升級至 **SP4** 並安裝所有後續安全修補程式。
- 使用 **Microsoft Baseline Security Analyzer (MBSA)** 掃描弱點:
過多 sysadmin、空白/弱密碼、脆弱驗證模式、錯誤 ACL、純文字 sa 密碼、Guest 過度權限、DC 上執行 SQL、Everyone 註冊表存取、服務帳號設定錯誤、缺乏修補程式。
2. 強制使用 Windows 驗證模式
- 企業管理員 → 伺服器屬性 → 安全性 → 僅限 Windows。
- 優勢:Kerberos/NTLM 強式驗證、密碼複雜度/過期策略、憑證委派、用戶端無需儲存密碼。
3. 物理與邏輯隔離、定期異地備份
- 主機置於上鎖機房、防水/防火設備。
- 資料庫置於內部網路安全區,**勿直接連接 Internet**。
- 定期完整備份,異地離線保存副本。
4. 設定強健 sa 密碼(即使啟用 Windows 驗證)
- 企業管理員 → 安全性 → 登入 → sa → 屬性 → 密碼。
- 防止未來切換至混合模式時出現空白/弱密碼。
5. 限制 SQL Server 服務帳號權限
| 服務 | 建議帳號類型 | 禁止帳號 |
| MSSQLServer | 一般網域使用者 | Local System / Local Admin / Domain Admin |
| SQLServerAgent | 一般網域使用者(或停用) | 同上 |
需本地管理員權限的例外:SQL Agent 使用 SQL 驗證連線、多伺服器管理 (MSX) 使用 SQL 驗證、非 sysadmin 執行 ActiveX/CmdExec 作業。
**務必用企業管理員變更服務帳號**,自動設定檔案/登錄/使用者權限;勿用 services.msc 手動改。
6. 防火牆封鎖 SQL Server 連接埠
- 預設執行個體:TCP 1433、UDP 1434。
- 具名執行個體:動態連接埠,**同樣需在防火牆封鎖**。
7. 採用 NTFS 檔案系統並啟用 EFS 加密
- NTFS 提供 ACL、EFS、穩定性優於 FAT32。
- 安裝時 SQL Server 自動設定登錄/檔案 ACL,**勿手動更改**。
- EFS 加密下,僅服務帳號可解密;變更服務帳號時需先解密再重新加密。
8. 刪除或保護舊安裝檔案(含純文字 sa 密碼)
- SQL 2000:
Program Files\Microsoft SQL Server\MSSQL\Install\sqlstp.log, sqlsp.log, setup.iss
- 升級自 7.0:
%Windir%\setup.iss、Windows Temp\sqlsp.log
- 刪除或加密保存。
9. 稽核失敗連線並定期檢視
- 企業管理員 → 伺服器屬性 → 安全性 → 稽核等級 → **失敗**。
- 重啟服務生效。
- 日誌檔勿與資料檔置於同一磁碟。
10. 持續監控與修補
- 訂閱 Microsoft Security Bulletin。
- 定期執行 MBSA 掃描。
- 建立變更管理流程,所有設定變更留存紀錄。
快速自檢清單
| # | 項目 | 狀態 |
| 1 | SP4 + 所有安全更新已套用 | ☐ |
| 2 | MBSA 掃描零高風險發現 | ☐ |
| 3 | Windows 驗證模式已啟用 | ☐ |
| 4 | 物理/邏輯隔離 + 異地備份 | ☐ |
| 5 | sa 強密碼已設定 | ☐ |
| 6 | 服務帳號為一般網域使用者 | ☐ |
| 7 | 防火牆封鎖 1433/1434 | ☐ |
| 8 | NTFS + EFS + ACL 未異動 | ☐ |
| 9 | 安裝日誌已清理/加密 | ☐ |
| 10 | 失敗連線稽核已啟用 | ☐ |
安全非一次性專案,而是持續營運過程。落實這十大鐵律,並納入定期稽核循環,才能有效降低 SQL Server 2000 被入侵風險。