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

SQL Server 資料庫安全稽核清單 30 項實務檢查點

     編輯:關於SqlServer

基礎環境與帳號管理

  1. 套用最新 NT/2000 與 SQL Server 修補程式。
  2. 評估網路協定:多重協定較安全,但異質環境可能不適用。
  3. sa 與 probe 帳號設強式密碼,妥善保管。probe 用於效能分析與複寫,標準安全模式下強密碼可能影響功能。
  4. SQL Server 服務啟動帳號使用低權限使用者,非 LocalSystem 或 sa,最小化權限並包含「以服務登入」權利。企業管理器設定時會同步處理檔案、登錄檔、使用者權利 ACL。
  5. 所有資料庫與系統檔案置於 NTFS 分割區並套用適當 ACL,入侵時可阻擋資料破壞。

擴展預存程序精簡(核心防禦)

  1. 不需 xp_cmdshell 必須移除:sp_dropextendedproc 'xp_cmdshell'。需時可用 sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll' 還原。它是進入作業系統的最大後門。
  2. 移除 OLE 自動化預存程序(會失去部分企業管理器功能):sp_OACreate、sp_OADestroy、sp_OAGetErrorInfo、sp_OAGetProperty、sp_OAMethod、sp_OASetProperty、sp_OAStop。
  3. 移除登錄檔存取預存程序(甚至能讀出作業系統管理員密碼):xp_regaddmultistring、xp_regdeletekey、xp_regdeletevalue、xp_regenumvalues、xp_regremovemultistring、xp_regread、xp_regwrite(註:xp_regread/write 移除影響日誌與 SP 安裝,不建議移除)。
  4. 評估移除其他高風險系統預存程序(先在開發機測試):sp_sdidebug、xp_availablemedia、xp_cmdshell、xp_deletemail、xp_dirtree、xp_dropwebtask、xp_dsninfo、xp_enumdsn、xp_enumerrorlogs、xp_enumgroups、xp_enumqueuedtasks、xp_eventlog、xp_findnextmsg、xp_fixeddrives、xp_getfiledetails、xp_getnetname、xp_grantlogin、xp_logevent、xp_loginconfig、xp_logininfo、xp_makewebtask、xp_msver、xp_perfend、xp_perfmonitor、xp_perfsample、xp_perfstart、xp_readerrorlog、xp_readmail、xp_revokelogin、xp_runwebtask、xp_schedulersignal、xp_sendmail、xp_servicecontrol、xp_snmp_getstate、xp_snmp_raisetrap、xp_sprintf、xp_sqlinventory、xp_sqlregister、xp_sqltrace、xp_sscanf、xp_startmail、xp_stopmail、xp_subdirs、xp_unc_to_drive。

認證與存取控制

  1. 企業管理器「安全性選項」停用預設登入(僅 SQL 6.5),整合安全模式下阻擋未在 syslogins 的使用者。
  2. 移除資料庫 guest 帳號(master、tempdb 除外)。
  3. 非必要完全停用 SQL Mail,防止木馬、病毒、DoS 攻擊。
  4. 檢查 master..sp_helpstartup 是否有可疑啟動程序,用 sp_unmakestartup 移除。
  5. 檢查 master..sp_password 是否被植入木馬代碼,比對全新安裝腳本並備份。

稽核與監控

  1. 啟用完整登入稽核(失敗與成功):企業管理器或 xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\MSSQLServer', N'AuditLevel', REG_DWORD, 3。
  2. DOS 命令定期掃描失敗登入:findstr /C:"Login Failed" mssql7\log\*.* 輸出至檔案/郵件。
  3. 設定非法存取/登入失敗事件警示,郵件通知操作員。
  4. 確認伺服器/資料庫角色僅授予必要使用者。
  5. 定期稽核群組/角色成員,簡化審計;確保 public 角色無法查詢系統表。
  6. 稽核空密碼帳號:SELECT name, password FROM master..syslogins WHERE password IS NULL ORDER BY name。

進階防護

  1. 採用整合安全性,簡化雙重安全模型維護,密碼不出現在連接字串。
  2. 定期查詢非 sa 使用者擴展/預存程序權限:SELECT sysobjects.name FROM sysobjects, sysprotects WHERE sysprotects.uid=0 AND xtype IN ('X','P') AND sysobjects.id=sysprotects.id ORDER BY name。
  3. 企業管理器使用整合安全性,避免舊版將 sa 明文密碼寫入登錄檔(HKEY_CURRENT_USER\Software\Microsoft\MSSQLServer\SQLEW\Registered Servers)。
  4. 建立月度安全報告機制,含新弱點、成功攻擊、備份保護、存取失敗統計。
  5. 禁止使用者互動式登入 SQL Server 主機,任何服務器皆適用。
  6. 極力限制對 SQL Server 的查詢與存取操作,最小權限原則。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved