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

SQL Server 資料庫安全檢查 30 步驟清單 (3/3):警報設定、角色權限審計、空密碼檢查、整合驗證、備份驗證與存取限制

     編輯:關於SqlServer

第 20-30 步:持續營運與深度防禦

  1. 設定登入失敗/拒絕存取警報:Enterprise Manager → 管理 SQL Server 訊息 → 搜尋 "login failed"、"denied" → 設定發送郵件/寻呼給值班 DBA。
  2. 審計伺服器/資料庫角色成員:僅授予必要帳號 sysadmin、securityadmin、db_owner 等高權限角色。定期匯出 sp_helpsrvrolemember、sp_helprolemember 比對基準線。
  3. 使用角色/群組管理權限,簡化審計:建立應用程式角色 (db_datareader_app、db_datawriter_app),避免直接授權個別使用者。確認 public 角色無系統表 SELECT 權限。
  4. 掃描空密碼登入:
    SELECT name, password
    FROM master..syslogins
    WHERE password IS NULL OR password = '';
    
    發現立即設定強密碼或停用帳號。
  5. 啟用 Windows 整合驗證 (混合模式下):優先使用 Kerberos/NTLM,避免連接字串含明文密碼,簡化帳號生命週期管理。
  6. 審計 PUBLIC 權限於擴展/系統預存程序:
    USE master;
    SELECT o.name
    FROM sysobjects o
    JOIN sysprotects p ON o.id = p.id
    WHERE p.uid = 0  -- PUBLIC
      AND o.xtype IN ('X','P')  -- 延伸預存程序、預存程序
    ORDER BY o.name;
    
    移除非必要的 PUBLIC GRANT。
  7. Enterprise Manager 不儲存 sa 密碼:SQL 6.5/7.0 會以明文寫入註冊表。2000+ 改用整合驗證登入 EM,或手動清除註冊表:
    HKEY_CURRENT_USER\Software\Microsoft\Microsoft SQL Server\80\Tools\Shell\SQLEW\Registered Servers\...
    
  8. 建立月度安全報告機制:內容含新弱點、攻擊嘗試統計、備份還原演練結果、物件存取失敗統計,呈報 IT 主管。
  9. 禁止使用者互動式登入資料庫伺服器:群組原則 → 拒絕本地登入:SQL 服務帳號、應用程式帳號。僅允許管理員透過 RDP/堡壘機運維。
  10. 最小化查詢/存取權限:僅授予業務必要的 SELECT/EXECUTE,拒絕直接存取系統表、DMV、跨資料庫查詢,除非經評估核准。

持續合規自動化

頻率檢查項目工具/腳本
每日登入失敗統計、錯誤日誌關鍵字Agent Job + PowerShell + 郵件
每週角色成員變更、空密碼掃描、PUBLIC 權限T-SQL 腳本 + 比對基準線
每月修補狀態、弱點掃描、備份還原測試、安全報告WSUS/SCCM、Nessus/OpenVAS、手動演練
每季滲透測試、權限重新認證、災難恢復演練外部紅隊、身分治理 (IGA) 流程

結語

30 步驟涵蓋「修補、網路、帳號、權限、稽核、物理、程序、文化」八大面向。安全非產品可買,而是持續流程:基準線 → 偏差偵測 → 修復驗證 → 基準線更新。建議將清單納入 ITIL 變更管理 與 DevSecOps 流水線,實現「安全左移」。

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