資料庫安全常被忽視,許多管理員以為作業系統與網路層面做好防護就萬事大吉。實則資料庫層面存在獨特攻擊面:預設帳號、過度權限、未加密傳輸、擴展預存程序後門等。本文提供系統性的九步驟安全加固清單。
USE master;
SELECT name FROM syslogins WHERE password IS NULL;
db_datareader,寫入應用給 db_datawriterBUILTIN\Administrators 登入(風險:sa 遺失密碼無法恢復)findstr /C:"登入" "D:\Microsoft SQL Server\MSSQL\LOG\*.*"
原則:不用的全部移除
| 類別 | 預存程序 | 風險 | 移除命令 |
|---|---|---|---|
| 命令執行 | xp_cmdshell | 直接執行 OS 命令,最高風險 | sp_dropextendedproc 'xp_cmdshell' |
| OLE 自動化 | sp_OACreate, sp_OAMethod, sp_OAGetProperty, sp_OASetProperty, sp_OADestroy, sp_OAGetErrorInfo, sp_OAStop | 建立 COM 物件、存取檔案系統、登錄 | 逐個 sp_dropextendedproc |
| 登錄存取 | xp_regread, xp_regwrite, xp_regdeletekey, xp_regdeletevalue, xp_regenumvalues, xp_regaddmultistring, xp_regremovemultistring | 讀寫登錄,可竊取 OS 密碼 | 逐個 sp_dropextendedproc |
需還原時:sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
Encrypt=True;TrustServerCertificate=False| 步驟 | 項目 | 驗收標準 |
|---|---|---|
| 1 | 密碼策略 | sa 複雜密碼、定期輪換、無弱密碼帳號 |
| 2 | 帳號管理 | 應用不用 sa、最小權限、移除 BUILTIN\Administrators |
| 3 | 稽核日誌 | 成功/失敗登入皆記錄、定期審閱 |
| 4 | 擴展預存程序 | xp_cmdshell/OLE/登錄類全部移除 |
| 5 | 協定加密 | TDS 強制加密、有效憑證 |
| 6 | 隱藏執行個體 | 1434 UDP 無回應 |
| 7 | 修改 TCP 埠 | 非 1433、防火牆對應開放 |
| 8 | 封鎖 1434 | IPSec 封鎖 UDP 1434 |
| 9 | IP 限制 | 僅允許白名單 IP 存取 |
資料庫安全是纵深防禦的一環。這九步驟涵蓋認證、授權、稽核、加密、網路、介面攻擊面等核心面向。安全非一次性工程,需持續審查、修補、演練,才能在威脅演變中保持防禦有效性。