默認 mysql.user 表存在高風險記錄:
+-----------+------+----------+-------------+-------------+-----------+
| host | user | password | delete_priv | update_priv | drop_priv |
+-----------+------+----------+-------------+-------------+-----------+
| localhost | root | **** | Y | Y | Y |
| % | root | (空) | Y | Y | Y | ← 任意主機無密碼 Root
| localhost | | (空) | Y | Y | Y | ← 本地匿名高權限
| % | | (空) | N | N | N |
+-----------+------+----------+-------------+-------------+-----------+
修復:DELETE FROM user WHERE host='%' AND user='root'; DELETE FROM user WHERE user=''; FLUSH PRIVILEGES;
默認安裝 C:\MySQL 繼承 C:\ 的 Everyone:Full Control,惡意用戶可刪除數據文件。
對策:重置 ACL 僅保留 SYSTEM/Administrators/MySQL 服務賬號;或安裝至非系統盤並獨立設置權限。
sa 默認空密碼,擁有 sysadmin 角色xp_cmdshell 允許直接執行 OS 命令:EXEC master..xp_cmdshell 'net user hack 123 /add'修復:
USE master; SELECT name, password FROM syslogins WHERE password IS NULL; 掃描空密碼
EXEC sp_dropextendedproc 'xp_cmdshell'; 移除危險擴展 (業務確實不需要時)
Windows Authentication 允許本地管理員組直接以 sysadmin 登入。OS 提權即 DB 提權。
對策:嚴格控制本地管理員組;啟用登入審計;定期 findstr /C:"登錄" *.log 排查異常。
MSSQL 擁有完整審計日誌 (登入/失敗/操作),事後追蹤優於 MySQL。但若配置得當,**MySQL 權限模型更細粒度、攻擊面更小** (無 OS 權限繼承、無 xp_cmdshell 等效功能)。
向 1434/UDP 發送 0x02 即可獲取:實例名、版本、命名管道、**真實 TCP 端口** (即使修改了 1433)。此行為不可禁用、不可修改端口。
對策:邊界防火牆封禁 1434/UDP;IPsec 限制來源 IP;部署蜜罐誘捕掃描者。
根治:強制 **SSL/TLS 加密傳輸** (MySQL require_secure_transport=ON,MSSQL Force Encryption);部署證書基礎設施 (PKI)。
ASP/PHP/JSP 皆受 '; -- # $ @ 等特殊字符影響。核心在於:**參數化查詢 + 輸入驗證 + 最小權限賬號**,而非依賴 WAF/過濾器。
myisamchk 修復,風險高| 維度 | MSSQL | MySQL (InnoDB+硬化) |
|---|---|---|
| 默認安全性 | 差 (sa空密碼、1434洩露、xp_cmdshell) | 差 (匿名用戶、Root%、FILE權限) |
| 硬化後安全性 | 優 (深度防禦、ACL、審計、加密) | 優 (權限細粒度、無OS繼承、SSL、審計插件) |
| 遠程溢出歷史 | 多 (Slammer、CVE-2002-0649 等) | 少 (核心代碼精簡、審計透明) |
| 運行維護成本 | 高 (授權、專業 DBA、Windows 生態) | 低 (開源、社區、跨平台、自動化友好) |
「哪個更安全」沒有標準答案,**安全性 = 產品特性 × 配置硬化 × 運營能力 × 威脅模型**。MySQL 經硬化後在邏輯隔離、攻擊面控制上具備結構性優勢;MSSQL 在審計深度、災難恢復、企業級生態上更成熟。關鍵在於:不要相信默認安裝,要相信持續的安全運營投入。