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

SQL Server 修改電腦名稱後無法 Windows 整合驗證登入:單一使用者模式 (-m) 解決方案

     編輯:關於SqlServer

問題現象

  • 修改伺服器電腦名稱後,SSMS 登入視窗顯示「新電腦名稱\目前使用者」,帳號密碼欄位灰色不可編輯。
  • Windows 整合驗證失敗,因為 syslogins 仍記錄舊電腦名稱的 Windows 登入(如 OLDNAME\Administrator)。
  • 若不知 sa 密碼且無其他 SQL 登入,將無法進入管理介面修復。

根本原因

SQL Server 安裝時會將當前 Windows 使用者(含電腦名稱)加入 sysadmin 固定伺服器角色。電腦重命名後,舊登入失效,新登入尚未建立,導致無系統管理員可登入。

解決方案:啟動參數加入 -m (單一使用者模式)

  1. 開啟 SQL Server Configuration Manager。
  2. 選取 SQL Server 服務 → 右鍵 MSSQLSERVER (或具名執行個體) → 屬性 → 啟動參數 頁籤。
  3. 在現有參數前加入 ;-m(注意前面需有分號分隔)。
  4. 確定 → 重新啟動 SQL Server 服務。
  5. 以 本機 Administrators 群組成員 身分開啟 SSMS,選 Windows 驗證 登入 → 成功進入!

原理說明

啟動參數 -m 讓 SQL Server 以單一使用者模式啟動。此模式下,本機 Administrators 群組任何成員 皆以 sysadmin 身分登入,不檢查 syslogins 是否存在該 Windows 登入。

登入後修復步驟

  1. 展開 安全性 → 登入 → 新增 新電腦名稱\Administrator (或目前使用者) → 對應 sysadmin 角色。
  2. 啟用 sa 並設定強密碼:
    ALTER LOGIN sa ENABLE; ALTER LOGIN sa WITH PASSWORD = 'StrongP@ssw0rd';
  3. 若需混合模式:伺服器屬性 → 安全性 → SQL Server 和 Windows 驗證模式。
  4. 移除啟動參數 -m → 重新啟動服務恢復正常模式。

常見誤區澄清

  • OSQL -E 或 SQLCMD -E 同樣需要 Windows 整合驗證成功才能進入,無法解決此問題。
  • 單一使用者模式並非「繞過驗證」,而是「擴大信任範圍至本機管理員」。

適用版本

SQL Server 2005 / 2008 / 2008 R2 / 2012 / 2014 / 2016 / 2017 / 2019 均適用。

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