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

SQL Server 安全加固清單:從安裝到運行的 5 大核心實踐

     編輯:關於SqlServer

安全加固五大支柱

1. 保持補丁最新:服務包 + 安全更新

  • SQL Server 2000 **必裝 SP4** (含 MS08-040/MS09-004 等關鍵修補)。
  • SQL Server 2005/2008 **必裝最新 SP + CU** (如 2005 SP4 CU3、2008 SP4 CU)。
  • 訂閱 Microsoft Security Bulletin 或配置 WSUS/SCCM 自動推送。
  • 使用 Microsoft Baseline Security Analyzer (MBSA) 定期掃描:缺失補丁、弱密碼、過度授權、危險擴展存儲過程、Guest 權限、安裝介質殘留 sa 密碼等 10+ 項基線檢查。

2. 強制 Windows 身份驗證模式

  • 企業管理器 / SSMS → 實例屬性 → 安全性 → **僅限 Windows 身份驗證**。
  • 優勢:Kerberos/NTLM 強認證、密碼策略 (複雜度/過期/歷史) 域級統一、無需應用層存儲密碼、支持約束委派 (跨服務器雙跳)。
  • 混合模式僅作為非域環境/舊應用過渡,並嚴格限制 SQL 登錄賬號權限。

3. 物理與邏輯隔離

  • 物理:機房門禁、UPS、防水/煙感/滅火、機架鎖定、介質銷毀流程。
  • 網絡:數據庫服務器僅放內網 DMZ,禁止直連 Internet;防火牆僅開放應用服務器 IP → 1433/實例端口;管理端口 (RDP/SSH) 僅堡壘機/跳板機可達。
  • 實例:非核心業務獨立實例,甚至獨立服務器;關鍵業務啟用 AlwaysOn/FCI 高可用。

4. 最小權限原則與賬號管理

賬號類型原則執行動作
sa / 系統管理員極少數人知情、極少使用強密碼 (20+ 字符)、重命名、禁用、審計日誌告警
服務帳戶域用戶、非管理員授予 Perform Volume Maintenance Tasks (瞬間文件初始化)、Lock Pages in Memory (大內存) 僅按需
應用連接賬號僅擁有業務庫 DML 權限拒絕 DDL、EXECUTE 系統存儲過程、xp_cmdshell、跨庫訪問
開發/運維賬號按角色分級只讀角色、DML 角色、DDL 角色、安全管理員角色,定期審計回收

5. 定期備份與異地存儲

  • 策略:全量 (週) + 差異 (日) + 日誌 (時) ,驗證 `RESTORE VERIFYONLY`。
  • 介質:磁盤 (本地/NAS) + 雲存儲 (Azure Blob/AWS S3/阿里云 OSS) 異地冗餘。
  • 加密:備份壓縮加密 (SQL 2014+ `BACKUP ... WITH ENCRYPTION`)、傳輸加密 (TLS 1.2)。
  • 演練:季度級**全量恢復演練**,記錄 RTO/RPO,驗證數據完整性與應用可用性。

快速自檢腳本 (運行於目標實例 master 庫)

-- 1. 檢查認證模式 (1=Windows, 2=Mixed)
EXEC xp_instance_regread N'HKEY_LOCAL_MACHINE',
    N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode';

-- 2. 列出 sysadmin 成員
SELECT name, type_desc, is_disabled, create_date, modify_date
FROM sys.server_principals
WHERE IS_SRVROLEMEMBER('sysadmin', name) = 1;

-- 3. 檢查空/弱密碼 SQL 登錄 (需 sysadmin)
SELECT name FROM sys.sql_logins
WHERE PWDCOMPARE('', password_hash) = 1  -- 空密碼
   OR PWDCOMPARE(name, password_hash) = 1; -- 密碼等於用戶名

-- 4. 危險擴展存儲過程是否存在
SELECT name FROM sys.extended_procedures
WHERE name IN ('xp_cmdshell','xp_regread','xp_regwrite','sp_OACreate','sp_OAMethod');

-- 5. Guest 用戶權限
SELECT db_name() AS DB, su.name AS GuestUser, dp.permission_name, dp.state_desc
FROM sys.database_principals su
JOIN sys.database_permissions dp ON su.principal_id = dp.grantee_principal_id
WHERE su.name = 'guest' AND dp.state = 'G';

合規映射參考

合規標準核心要求映射
等保三級身份鑒別、訪問控制、安全審計、入侵防範、惡意代碼防範
PCI-DSS 4.0需求 2/3/7/8/10/12:默認密碼修改、加密傳輸/存儲、最小權限、唯一 ID、審計日誌、風險評估
GDPR數據最小化、存儲限制、完整性保密性、DPIA、72h 違規通報

總結

SQL Server 安全非一次性配置,而是**補丁管理 + 認證模式 + 網絡隔離 + 最小權限 + 備份演練**五大持續性流程的疊加。建議將上述清單納入月度巡檢制度,配合 MBSA/自動化腳本產出合規報告,做到有據可查、有錯必改、有責可追。

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