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

SQL Server 2005 遠端連線 18456 錯誤完整排查指南

     編輯:關於SqlServer

錯誤現象

無法連接到 192.1.1.19。
使用者 'shop' 登入失敗。 (Microsoft SQL Server,錯誤: 18456)

錯誤 18456 狀態碼對照 (關鍵診斷線索)

State含義常見原因
1錯誤資訊不足需查看 SQL Errorlog 取得真實 State
2, 5使用者帳號不存在拼錯、未建立、登入名 vs 使用者名混淆
6嘗試用 Windows 登入 SQL 驗證連接字串 Trusted_Connection=Yes 但用 SQL 登入
7帳號停用ALTER LOGIN ... DISABLE
8密碼錯誤密碼錯誤、大小寫、特殊字元
9密碼過期密碼原則強制變更
11, 12登入有效但伺服器存取被拒CONNECT SQL 權限、端點權限
18密碼必須變更首次登入、管理員重設

系統atic 排查步驟

1. 確認基礎服務與網路

  • SQL Server 服務執行中
  • SQL Server Browser 服務執行中 (具名實例必須)
  • TCP/IP 協定啟用 (SQL Server 組態管理器)
  • 防火牆開放 1433 (預設實例) 或動態埠 (具名實例)
  • 可用 telnet IP 1433 或 Test-NetConnection 測試連通性

2. 驗證模式設定

-- SSMS:右鍵伺服器 → 內容 → 安全性
-- 選擇「SQL Server 和 Windows 驗證模式」
-- 需重啟 SQL Server 服務生效

3. 檢查登入帳號狀態

-- 啟用 sa / 指定帳號
ALTER LOGIN [shop] ENABLE;
-- 重設密碼
ALTER LOGIN [shop] WITH PASSWORD = 'NewStrongPass123!';
-- 確認預設資料庫存在
ALTER LOGIN [shop] WITH DEFAULT_DATABASE = [master];

4. 查看 SQL Server 錯誤日誌取得真實 State

-- SSMS:管理 → SQL Server 記錄檔 → 目前錯誤記錄檔
-- 搜尋 18456,記錄 State 值

5. 連接字串常見錯誤

錯誤類型錯誤範例正確範例
埠號遺漏Server=192.1.1.19Server=192.1.1.19,1433
具名實例格式Server=192.1.1.19\SQLEXPRESSServer=192.1.1.19\SQLEXPRESS
驗證模式衝突Trusted_Connection=Yes;User ID=sa移除 Trusted_Connection 或移除 User ID

快速修復腳本

-- 1. 啟用混合驗證 (需重啟服務)
EXEC xp_instance_regwrite N'System\CurrentControlSet\Services\MSSQLSERVER', 
    N'LoginMode', REG_DWORD, 2;  -- 2 = 混合模式

-- 2. 啟用 sa、設定強密碼
ALTER LOGIN [sa] ENABLE;
ALTER LOGIN [sa] WITH PASSWORD = 'ComplexPass123!', CHECK_POLICY = ON;

-- 3. 確認 TCP/IP 啟用、固定埠 1433
-- 需用 SQL Server 組態管理器操作
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved