首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 安全安裝與配置指南:從 SA 強密碼到 Slammer 蠕蟲防護的完整防禦體系

     編輯:關於SqlServer

前言

資料庫安全的核心原則:最小權限、預設安全、纵深防禦、持續修補。許多入侵源於安裝階段的疏忽:空密碼 SA、未修補已知漏洞、過度開放協定/功能。本文建立從安裝到營運的完整安全基線。

安裝前準備

  1. 作業系統強化:套用最新安全更新、停用不需服務、配置 Windows 防火牆/ IPsec、啟用稽核原則。
  2. 應用程式碼審查:ASP/PHP 等腳本必須過濾 ' ; @ / -- 等 SQL 注入特徵字元,使用參數化查詢。
  3. 下載最新 Service Pack:SQL Server 2000 SP4 (含 MS03-031 修補 Slammer 漏洞),SQL Server 2005 SP4 / 2008 R2 SP3 等。安裝前即整合 SP 到安裝媒體。

安裝階段安全決策

決策點安全選擇理由
認證模式Windows 驗證模式 (整合模式)利用 AD/Kerberos、密碼原則、帳號鎖定、審計;無 sa 密碼風險
SA 密碼 (若必須混合模式)複雜密碼 ≥ 16 字元、含大小寫/數字/符號,存放於密碼管理器防止暴力破解、彩虹表攻擊
服務帳號專用網域服務帳號 (非 LocalSystem/NetworkService)最小權限、可跨機器驗證、支援 Kerberos 委派
網路協定僅啟用必要協定:本機 Shared Memory;內網 Named Pipes/TCP/IP (配合 IPsec)減少攻擊面
功能選擇最小安裝:僅核心引擎、必要工具;不裝範例資料庫、Full-Text (除非需要)減少程式碼表面、降低漏洞機率

安裝後立即執行的 10 項基線配置

  1. 建立專屬 DBA 登入:CREATE LOGIN [DBA_User] FROM WINDOWS; ALTER SERVER ROLE sysadmin ADD MEMBER [DBA_User]; 之後停用 sa:ALTER LOGIN sa DISABLE;。
  2. 移除 BUILTIN\Administrators:DROP LOGIN [BUILTIN\Administrators]; (防止 OS 管理員自動成為 sysadmin)。前提:已建立替代 DBA 登入,否則鎖死自己。
  3. 啟用失敗登入稽核:SSMS → 伺服器屬性 → 安全性 → 稽核等級:失敗的登入 (或成功與失敗)。
  4. 停用高風險擴展預存程序:
    EXEC sp_dropextendedproc 'xp_cmdshell';
    EXEC sp_dropextendedproc 'xp_regread';  -- 等註冊表相關
    EXEC sp_dropextendedproc 'sp_OACreate'; -- 等 OLE Automation 相關
  5. 配置通訊加密:申請憑證 → SQL Server 組態管理員 → 協定 → ForceEncryption = Yes。強制 TLS 1.2+。
  6. 設定錯誤日誌保留:EXEC xp_instance_regwrite 'HKLM', 'Software\Microsoft\MSSQLServer\MSSQLServer', 'ErrorLogSize', 'REG_DWORD', 20000; (保留 20MB)。
  7. 資料庫層級最小權限:應用使用專用登入/使用者,僅授 SELECT/INSERT/UPDATE/DELETE 於特定結構描述,拒絕 DDL、EXECUTE 系統程序。
  8. 啟用資料庫審計 (SQL Server 2008+):CREATE SERVER AUDIT ...; CREATE DATABASE AUDIT SPECIFICATION ...; 記錄 DML/DDL/權限變更。
  9. 備份加密與離線儲存:BACKUP DATABASE ... WITH COMPRESSION, ENCRYPTION (ALGORITHM = AES_256, SERVER CERTIFICATE = ...); 備份檔異地離線保存。
  10. 建立修補流程:訂閱 Security Bulletin、WSUS/SCCM 自動部署、每月修補窗口、修補前快照/備份驗證。

經典案例:Slammer 蠕蟲 (2003) 復盤與教訓

  • 漏洞:SQL Server 2000 Resolution Service (UDP 1434) 緩衝區溢位 (MS02-039/MS03-031)。
  • 傳播:無需檔案落地、純記憶體駐留、15 秒感染全網、DoS 攻擊癱瘓網路。
  • 根因:大量暴露於網際網路的 SQL Server 未套用 SP3/SP3a、預設開放 UDP 1434、sa 空密碼。
  • 教訓:修補時效性 = 生存能力。現代防護:
    — 防火牆封鎖 UDP 1434 / TCP 1433 對外
    — 強制加密連線
    — 自動化修補管道
    — 資產清單與漏洞掃描常態化

持續營運安全清單

頻率動作
每日檢查錯誤日誌失敗登入、備份完成狀態、磁碟空間
每週MBSA/漏洞掃描、權限審查 (sysadmin 成員)、追蹤旗標/擴展程序檢查
每月套用累積更新/安全公告、備份還原演練、審計日誌分析
每季滲透測試、災難恢復演練、安全原則審視更新

結語

安全安裝不是終點,是起點。預設安全安裝 + 最小權限原則 + 持續修補循環 + 可驗證的備份/審計,構成 SQL Server 生命週期的鋼鐵防線。將此清單納入標準作業程序 (SOP),讓每一次部署都天生安全。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved