SQL Server 2005 相較 2000 大幅強化安全模型,但預設安裝仍存在風險。本文提供生產環境必執行的 3 大類強化操作,附 T-SQL 腳本與 GUI 步驟,打造纏深層防禦。
-- T-SQL 方式 (建議在維護窗口執行)
USE master;
GO
-- 1. 重新命名 SA (混淆攻擊目標)
ALTER LOGIN [sa] WITH NAME = [sql_admin_prod];
GO
-- 2. 設定高強度密碼 (需符合密碼策略)
ALTER LOGIN [sql_admin_prod] WITH PASSWORD = 'P@ssw0rd!Complex#2024';
GO
-- 3. 如不需 SA 權限,可停用
ALTER LOGIN [sql_admin_prod] DISABLE;
GO
GUI 操作:SSMS → 安全性 → 登入 → sa → 右鍵屬性 → 一般/狀態頁籤修改名稱、密碼、停用登入。
✅ 2005 新增:強制密碼策略 (複雜度、過期、鎖定)、密碼過期提醒,務必勾選。
BUILTIN\Administrators → 刪除,防止 OS 管理員直接成 sysadminEXEC sp_change_users_login 'Report'; 發現孤立帳號 → 刪除或映射xp_cmdshell 是最高風險擴展預存程序,允許執行任意 OS 命令 (如 net user hacker /add)。
-- 停用 xp_cmdshell (需 sysadmin)
EXEC sp_configure 'show advanced options', 1; RECONFIGURE;
EXEC sp_configure 'xp_cmdshell', 0; RECONFIGURE;
EXEC sp_configure 'show advanced options', 0; RECONFIGURE;
-- 徹底移除 (更安全)
EXEC sp_dropextendedproc 'xp_cmdshell';
其他高風險擴展程序同理檢視:xp_regread、xp_regwrite、xp_dirtree、xp_subdirs、xp_fileexist 等,業務不用即移除。
| 項目 | 建議設定 |
|---|---|
| 預設連接埠 | 修改 1433 → 非標準埠,防火牆限制來源 IP |
| 加密連線 | 強制 TLS 1.2+,憑證驗證 |
| 審計 | 啟用登入失敗/成功、結構變更、權限變更審計 |
| 最小權限原則 | 應用帳號僅授予特定 Schema 的 SELECT/EXECUTE |
| 資料庫加密 | TDE (透明資料加密) 保護靜態資料 |
| 定期修補 | 套用最新 CU/GDR,關注 CVE |
安全性非一次設定,而是持續程序。建立基線、定期稽核、事件響應,才能真正守護資料資產。