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

SQL Server 認證模式切換:從 Windows 驗證改為混合模式圖文教學

     編輯:關於SqlServer

安裝 SQL Server 時若選擇「Windows 驗證模式」,後續開發測試常需切換為「SQL Server 和 Windows 混合模式」以支援 SQL 登入。本文提供 SSMS 圖形介面與 T-SQL 兩種切換方式,並說明註冊屬性同步更新步驟。

方法一:SSMS 圖形介面 (最直觀)

  1. 開啟 **SQL Server Management Studio**,連線至目標執行個體
  2. 在 **物件總管** 中右鍵點擊伺服器名稱 (通常顯示為 (local) 或機器名) → 選擇 **屬性 (Properties)**
  3. 左側選單選 **安全性 (Security)** 頁籤
  4. 在 **伺服器驗證** 區域,選擇 SQL Server 和 Windows 驗證模式
  5. 點擊 **確定**,系統提示需重新啟動服務生效 → 於 SSMS 中右鍵伺服器 → **重新啟動**

方法二:T-SQL 指令 (適合自動化腳本)

-- 讀取目前模式 (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

同步更新註冊屬性 (避免 SSMS 連線失敗)

切換模式後,現有的伺服器註冊仍保留舊驗證資訊,需手動更新:

  1. 物件總管 → 右鍵伺服器名稱 → **編輯 SQL Server 註冊屬性**
  2. 在 **連線** 頁籤,選擇 **SQL Server 驗證**
  3. 輸入有效的 SQL 登入帳號 (如 sa) 及密碼
  4. 點擊 **測試** 確認連線成功 → **儲存**

常見問題排查

現象原因解決
切換後無法用 SA 登入SA 帳號被停用或密碼不符SSMS → 安全性 → 登入 → sa → 狀態 → 啟用登入;重設密碼
Windows 使用者無法登入混合模式不影響 Windows 驗證檢查 Windows 登入是否存在於 SQL 登入清單
連線字串報錯應用程式連線字串未更新將 Integrated Security=SSPI 改為 User ID=sa;Password=xxx

安全提醒

  • 生產環境 **優先使用 Windows 驗證**,利用 Kerberos/NTLM 單一身分認證
  • 若必須混合模式,**強制 SA 複雜密碼、定期輪換、啟用登入失敗審計**
  • 考慮使用 **受控服務帳號 (gMSA)** 或 **Azure AD 整合** 替代 SQL 登入

三分鐘完成認證模式切換,讓開發測試與生產部署更靈活,同時守住安全底線。

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