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

SQL Server 資料庫安全檢查 30 步驟清單 (2/3):Guest 帳號、SQL Mail、啟動程序、稽核、預存程序加密與物理安全

     編輯:關於SqlServer

第 11-19 步:進階防護與稽核

  1. 移除使用者資料庫的 guest 使用者:REVOKE CONNECT FROM guest / DROP USER guest。例外:master、tempdb、msdb 必須保留 guest。
  2. 停用 SQL Mail:除非業務強制需求,否則 EXEC sp_configure 'SQL Mail XPs', 0; RECONFIGURE。防止郵件傳遞惡意程式碼、DoS 攻擊。
  3. 檢查啟動預存程序:EXEC master..sp_helpstartup,確認無不明程序。移除可疑項:EXEC sp_unmakestartup 'proc_name'。
  4. 驗證 sp_password 完整性:比對 sp_helptext 'sp_password' 與全新安裝實例,防範木馬竄改密碼邏輯。
  5. 啟用登入稽核 (成功+失敗):
    EXEC xp_instance_regwrite 
        N'HKEY_LOCAL_MACHINE',
        N'SOFTWARE\Microsoft\MSSQLServer\MSSQLServer',
        N'AuditLevel', REG_DWORD, 3;  -- 3 = 成功+失敗
    
    需重啟服務生效。
  6. 應用程式改用預存程序/檢視,停用直接資料表存取:授權 EXECUTE/SELECT 權限於模組,撤銷基底表 GRANT。兼具安全與效能 (計畫重用)。
  7. 移除非必要網路協定:Configuration Manager 僅啟用 TCP/IP (必要時 Named Pipes),停用其餘。
  8. 物理安全:伺服器置於門禁機房、BIOS 密碼、USB 封鎖、螢幕鎖定原則。
  9. 排程偵測登入失敗:
    -- SQL Agent 作業步驟 (每小時)
    findstr /C:"Login Failed" "C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Log\ERRORLOG*" 
      > "C:\Logs\FailedLogins_%DATE%.txt"
    
    或使用 Log Parser / PowerShell 解析寫入資料表供儀表板分析。

稽核自動化建議

  • 將錯誤日誌、Windows 安全性事件 (Event ID 4625) 集中轉送至 SIEM (Splunk/ELK/Azure Sentinel)
  • 設定警示:單一 IP 5 分鐘內失敗 > 10 次 → 觸發防火牆封鎖腳本
  • 定期產出「登入失敗趨勢報表」給資安團隊
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved