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

無法以 sysadmin 登入 SQL Server 解決方案:修改登入模式登錄表值恢復存取

     編輯:關於SqlServer

問題情境

因安全性設定錯誤(如移除 BUILTIN\Administrators 登入、改為僅 Windows 驗證卻未建立替代 sysadmin 帳號),導致自身被鎖在 SQL Server 外部,無法以 sa 或任何帳號登入。

核心解法:修改登錄值切換至混合模式

版本登錄路徑
SQL Server 7.0HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\LoginMode
SQL Server 2000HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\\MSSQLServer\LoginMode
  • 值 0 = 僅 Windows 驗證
  • 值 1 = 混合模式 (SQL Server + Windows)

操作步驟

  1. 開啟 regedit,定位上述路徑
  2. 將 LoginMode 修改為 1
  3. 重新啟動 SQL Server 服務 (net stop mssqlserver & net start mssqlserver)
  4. 以 sa 帳號登入 (需知道 sa 密碼)

根因分析:BUILTIN\Administrators 與 sysadmin 關係

  • 安裝時自動建立 BUILTIN\Administrators 登入並加入 sysadmin 角色
  • 本地 Administrators 群組成員 (含 Administrator、Domain Admins) 自動獲得 sysadmin 權限
  • 若刪除此登入、改為僅 Windows 驗證、重啟服務 → sa 停用且無其他 Windows 登入 → 完全鎖死

正確的安全性強化順序

  1. 建立 Windows 群組 (如 SQLAdmins) 並指派成員
  2. 在 SQL Server 建立對應 Windows 驗證登入,加入 sysadmin 角色
  3. 移除 BUILTIN\Administrators 登入或從 sysadmin 移除
  4. 將驗證模式改為「僅 Windows 驗證」
  5. 重新啟動 SQL Server 服務
⚠ 絕對避免的錯誤順序:刪除 BUILTIN\Administrators → 改為僅 Windows 驗證 → 重啟服務。此序列會導致無任何 sysadmin 可登入。

補充:啟用 sa 帳號 (若已知密碼)

ALTER LOGIN sa ENABLE;
ALTER LOGIN sa WITH PASSWORD = 'NewStrongPassword';

若遺忘 sa 密碼,需以單用戶模式 (-m) 啟動 SQL Server,以 Windows 管理員身分連線重設。

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