SQL Server 2000 廣泛應用於企業級資料庫環境,一旦發生安全漏洞,損失往往難以估量。因此,必須採取預防措施,從作業系統、應用程式到資料庫本身建立多層防護。本文將詳細說明 SQL Server 2000 的安全配置步驟與最佳實務。
在安裝 SQL Server 之前,確保作業系統已套用最新安全更新、關閉不必要的服務、啟用防火牆,並遵循最小權限原則設定帳號。
ASP、PHP 等腳本常成為 SQL 注入的入口。必須實施嚴格的輸入過濾,攔截 '; @ / 等特殊字元,防止惡意 SQL 語句構造。
安裝完成後,務必套用 SP1 及最新的 SP2 修補程式:
密碼是第一道防線。sa 帳號務必設定高強度密碼(長度、大小寫、數字、符號混合),且不得將密碼硬編碼於應用程式或腳本中。建議定期輪換密碼,並定期稽核弱密碼帳號:
USE master SELECT name, password FROM syslogins WHERE password IS NULL
sa 帳號無法重命名或刪除,僅在緊急情況(如其他系統管理員無法登入)下使用。public 角色的 SELECT 權限)。認證模式選擇:若不希望作業系統管理員透過 Windows 驗證存取資料庫,可移除 BUILTIN\Administrators 登入,但需注意這會導致 sa 密碼遺失時無法復原。
在執行個體屬性 → 安全性 中,將稽核等級設為「全部(成功與失敗)」,所有登入事件將記錄於 SQL Server 錯誤日誌與 Windows 事件檢視器中。定期檢視日誌或使用命令快速篩選:
findstr /C:"登錄" "D:\Microsoft SQL Server\MSSQL\LOG\*.*"
移除不必要的系統預存程序,縮減攻擊面:
xp_cmdshell(操作系統命令執行的高風險後門):
USE master EXEC sp_dropextendedproc 'xp_cmdshell'如需恢復:
EXEC sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
Sp_OACreate, Sp_OADestroy, Sp_OAGetErrorInfo, Sp_OAGetProperty, Sp_OAMethod, Sp_OASetProperty, Sp_OAStop
Xp_regaddmultistring, Xp_regdeletekey, Xp_regdeletevalue, Xp_regenumvalues, Xp_regread, Xp_regremovemultistring, Xp_regwrite
操作前請確認相依性,避免影響應用程式功能。
SQL Server 使用 TDS 協議傳輸資料,預設為明文。若環境允許,請申請憑證並啟用 SSL 加密,保護傳輸中的帳號密碼與敏感資料。
預設埠 1433 易遭掃描。雖可變更埠號,但 UDP 1434 仍可被探測。解決方法:在 TCP/IP 協議屬性中勾選「隱藏 SQL Server 執行個體」,禁止回應列舉廣播,迫使攻擊者需掃描所有埠才能發現。
在隱藏執行個體的基礎上,將 TCP/IP 埠從 1433 改為非標準埠(如 2433、3433 等),增加探測難度。
在 Windows 2000 的 IPSec 原則中,拒絕 UDP 1434 通訊,可防範探測與 DoS 攻擊導致 CPU 飆高。
SQL Server 本身無內建 IP 過濾,可利用 Windows 2000 IPSec 限制僅允許特定 IP 存取資料庫埠,有效隔離網路威脅。參考:IPSec 設定指南
上述配置可建立堅實基礎,但資安非一次性工作。需持續進行:內部權限審計、管理員安全教育、補丁管理、滲透測試與事件應變演練,才能確保資料庫長期安全。