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

SQL Server 安全性 16 大準則深度解析

     編輯:關於SqlServer

1. 強制 Windows 驗證模式

停用混合模式,僅允許 Windows 整合驗證。利用 AD 群組管理權限,密碼策略由域控制,避免連線字串含明文密碼。

2. 定期稽核空密碼與弱密碼登入

-- 檢查空密碼登入
SELECT name FROM sys.sql_logins WHERE password_hash IS NULL OR password_hash = 0x;

-- 弱密碼檢測工具:SQLPing 3、Nessus、自訂字典攻擊腳本

建立密碼原則:長度 ≥ 12、複雜度、定期輪換、鎖定機制。

3. 嚴格管理伺服器角色與資料庫角色成員

  • 定期檢視 sysadmin、securityadmin、db_owner 成員。
  • 採用「最小權限原則」:以角色授權,不直接授權個人。
  • 清理離職/轉職人員的殘留權限(幽靈帳號)。

4. 物理安全

  • 伺服器置於鎖控機房,限制實體存取。
  • 備份媒體加密儲存,離場備份保管。

5. 停用不必要的服務與功能

  • 停用 xp_cmdshell、OLE Automation、Ad Hoc Distributed Queries 等高風險擴展預存程序。
  • 使用 sp_configure 關閉:EXEC sp_configure 'xp_cmdshell', 0; RECONFIGURE;

6. 修補程式與版本管理

  • 訂閱 Microsoft Security Bulletin,定期套用 CU/GDR。
  • 測試環境先驗證,再推至生產。

7. 加密傳輸與靜態資料

  • 強制 TLS 1.2+ 加密連線(Force Encryption = Yes)。
  • 敏感資料欄位使用 Always Encrypted (SQL 2016+) 或 TDE (Transparent Data Encryption) 加密資料檔與備份。

8. 稽核與監控

  • 啟用 SQL Server Audit 記錄登入失敗、結構變更、權限異動、敏感資料存取。
  • 整合 SIEM (Splunk, Azure Sentinel) 即時告警。

9. 防火牆與網路隔離

  • 資料庫伺服器僅開放應用程式伺服器 IP 存取連接埠(1433/自訂)。
  • 管理連線(SSMS、RDP)限制跳板機/堡壘機來源 IP。

10. 最小權限服務帳號

  • SQL Server 服務、Agent 服務使用專用網域帳號,非 Local System / Network Service。
  • 僅授予必要資料夾、註冊表、SPN 權限。

11. 防止 SQL 注入

  • 應用程式強制使用參數化查詢 / 預存程序。
  • WAF 規則攔截可疑載荷。

12. 備份加密與離站儲存

  • BACKUP DATABASE ... WITH ENCRYPTION (ALGORITHM = AES_256, SERVER CERTIFICATE = ...)
  • 備份檔案異地儲存,定期測試還原。

13. 資料遮罩與分類

  • 動態資料遮罩 (Dynamic Data Masking) 保護非生產環境/支援人員查看敏感欄位。
  • 資料探索與分類標記敏感資料,配合稽核策略。

14. 限制錯誤訊息洩露

  • 應用程式捕獲例外,回傳通用錯誤代碼,不直接顯示 SQL 錯誤細節。

15. 定期滲透測試與弱點掃描

  • 年度委託第三方紅隊演練,驗證防禦深度。

16. 文件化與事件應變計畫

  • 維護安全設定基準文件、權限矩陣、事件應變手冊(偵測、遏制、根除、恢復、事後複盤)。

結語

安全性非一次性設定,而是持續的流程:評估 → 防護 → 偵測 → 回應 → 恢復。將這 16 項準則納入例行維運清單,建立自動化稽核腳本,才能有效降低資料外洩與服務中斷風險。

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