前言:資料庫安全是企業資安核心
SQL Server 建構於 Windows NT/2000 核心之上,其安全模型與作業系統緊密整合。理解分層驗證架構、兩種驗證模式、登入處理流程,是 DBA 建立最小權限、審計合規環境的基礎。
安全控制分層架構
SQL Server 安全呈現層次結構,通過上一層驗證才能進入下一層:
- Windows 作業系統層 — 網域/本機帳號密碼、Kerberos/NTLM 驗證、群組原則、稽核原則。
- SQL Server 登入層 — 登入帳號對應至 Windows 帳號/群組 或 SQL 專屬登入。
- 資料庫使用者層 — 登入映射至資料庫使用者,授與架構/物件權限。
- 物件/資料行/資料列層 — GRANT/DENY/REVOKE 細粒度權限、動態資料遮罩、資料列層級安全性(RLS)。
兩種驗證模式
| 模式 | 支援驗證方式 | 適用場景 | 特點 |
| Windows 驗證模式 | 僅 Windows 驗證 | 純內部網域環境 | 單一登入 (SSO);利用 Windows 密碼策略、鎖定、審計、加密;支援群組登入,管理簡化 |
| 混合模式 | Windows + SQL Server 驗證 | 含非網域用戶、Web 應用、異構環境 | SQL 登入提供額外隔離層;非 Windows 用戶(Linux、舊版 App)可連線;需雙重管理密碼策略 |
登入處理流程詳解
Windows 驗證流程
- 用戶登入 Windows 網域(Kerberos/NTLM)。
- 用戶端開啟委派連接至 SQL Server,傳送 Windows Token(含 SID、群組成員資格)。
- SQL Server 查詢
sys.server_principals(舊 syslogins),比對 Windows 使用者/群組 SID。
- 比對成功 → 接受連線,不再驗證密碼(信任 Windows 已驗證)。
- 登入名稱可為 DOMAIN\User 或 DOMAIN\Group。
SQL Server 驗證流程
- 用戶提供 SQL 登入名稱與密碼。
- SQL Server 查詢
sys.server_principals 比對密碼雜湊。
- 比對失敗 → 拒絕連線、記錄失敗審計、觸發鎖定原則。
Windows 驗證模式優勢
- 密碼複雜度、長度、歷史、鎖定、到期策略由網域群組原則統一強制。
- Kerberos 協議提供雙向驗證、委派、加密傳輸。
- 單一登入體驗,減少密碼疲勞與便利貼風險。
- 群組授權:新增 AD 群組為登入主體,成員變更自動生效,無需逐一維護 SQL 登入。
- 跨網域/信任網域單點存取多台 SQL Server。
混合模式適用場景與風險控制
- Internet 面向應用、舊版非 Windows 用戶、ISP 代管環境。
- 風險控制: 強制 SQL 登入啟用「強制密碼策略」、「強制密碼到期」;禁用
sa 帳號或重命名並設超長複雜密碼;僅允許特定 IP 範圍使用 SQL 登入(登入觸發器/防火牆)。
版本相容性提醒
SQL Server Personal Edition(Win95/98/Me)僅支援 SQL Server 驗證,無 Windows 整合驗證功能。生產環境請務必部署於 Windows Server 系列。
結語:策略選擇決定防禦深度
純內部環境首選「Windows 驗證模式」,享受作業系統級安全紅利;混合環境採「混合模式」並嚴格管控 SQL 登入。無論何種模式,核心原則皆為:最小權限、審計全記錄、密碼策略強制、定期審查登入主體。