安裝 SQL Server 時若選擇「Windows 驗證模式」,後續開發測試常需切換為「SQL Server 和 Windows 混合模式」以支援 SQL 登入。本文提供 SSMS 圖形介面與 T-SQL 兩種切換方式,並說明註冊屬性同步更新步驟。
(local) 或機器名) → 選擇 **屬性 (Properties)**-- 讀取目前模式 (1=Windows, 2=混合)
EXEC xp_instance_regread N'HKEY_LOCAL_MACHINE',
N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode';
-- 修改為混合模式 (值 = 2)
EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE',
N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode', REG_DWORD, 2;
-- 重新啟動服務生效 (需在命令列或服務管理工具執行)
-- net stop MSSQLSERVER & net start MSSQLSERVER
切換模式後,現有的伺服器註冊仍保留舊驗證資訊,需手動更新:
sa) 及密碼| 現象 | 原因 | 解決 |
|---|---|---|
| 切換後無法用 SA 登入 | SA 帳號被停用或密碼不符 | SSMS → 安全性 → 登入 → sa → 狀態 → 啟用登入;重設密碼 |
| Windows 使用者無法登入 | 混合模式不影響 Windows 驗證 | 檢查 Windows 登入是否存在於 SQL 登入清單 |
| 連線字串報錯 | 應用程式連線字串未更新 | 將 Integrated Security=SSPI 改為 User ID=sa;Password=xxx |
三分鐘完成認證模式切換,讓開發測試與生產部署更靈活,同時守住安全底線。