SQL Server 2000 中「用戶 sa 登錄失敗,原因:未與信任 SQL Server 連接」是經典錯誤,核心成因通常是認證模式不匹配(僅啟用 Windows 認證)或服務賬戶權限不足。本文提供系統性的排查步驟、修復方案與預防措施,助你快速恢復 sa 登錄並建立穩健的安全基線。
LoginMode 值錯誤 (1=僅 Windows, 2=混合模式)。MSSQLSERVER → 登錄 → 選「本地系統帳戶」 → 重啟服務。EXEC sp_password NULL, 'NewStrongPassword', 'sa'; (SQL 2000 語法)。regedit。HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer。LoginMode (REG_DWORD) → 值改為 2 (十進制) → 確定。注冊表鍵值含義: 1 = 僅 Windows 認證;2 = 混合模式 (Windows + SQL Server)。
若修改模式後 Windows 認證仍失效,可能因內建管理員組被誤刪。在企業管理器中:
BUILTIN\Administrators → 服務器角色勾選 System Administrators → 確定。<機器名>\Administrator。| 檢查項 | 工具/命令 | 預期狀態 |
|---|---|---|
| SQL Server 服務狀態 | services.msc / net start MSSQLSERVER | 運行中 |
| 錯誤日誌 | C:\Program Files\Microsoft SQL Server\MSSQL\LOG\ERRORLOG | 無 18456/17892/17182 錯誤 |
| 網絡協議 | 伺服器網絡實用程式 | TCP/IP、Named Pipes 均啟用 |
| 防火牆 1433 埠 | telnet localhost 1433 | 連通 |
| sa 帳戶狀態 | SELECT * FROM master..syslogins WHERE name='sa' | isntname=0, isntgroup=0, denylogin=0 |
| 密碼策略合規 | 本地安全策略 → 賬戶鎖定/密碼策略 | sa 密碼符合複雜度/長度/歷史要求 |
「sa 登錄失敗」本質是認證模式與連接方式的不匹配。標準修復路徑:服務賬戶修正 → Windows 登錄 → 切換混合模式 → 重置 sa 密碼 → 驗證。若 Windows 登錄受阻,注冊表強改 LoginMode=2 為終極手段。建立混合模式+強密碼+專用管理員+審計日誌 的安全基線,才能從根源杜絕此類故障。記住:sa 是核彈按鈕,平時鎖在保險箱,戰時才拿出來用。