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

SQL Server 2000 遠程連線故障完整排查手冊 (增強版)

     編輯:關於SqlServer

本文為遠程連線排查的增強版,補充更多實戰細節與進階驗證步驟。

分層排查框架

  1. 網路通訊層
  2. 伺服器配置層
  3. 客戶端配置層
  4. 驗證授權層
  5. 進階驗證與工具

第 1-3 層:核心檢查清單 (速查版)

☐ Ping Server IP 通
☐ Telnet IP 1433 通 (畫面閃爍、游標閃動)
☐ 伺服器:SQL Server 服務 Running
☐ 伺服器:伺服器網路公用程式 → TCP/IP 啟用
☐ 伺服器:TCP/IP 屬性 → 預設端口 1433、未勾選隱藏伺服器
☐ 伺服器:防火牆放行 1433/TCP (或暫時關閉測試)
☐ 伺服器:netstat -an 見 0.0.0.0:1433 LISTENING
☐ 伺服器:SELECT @@VERSION ≥ 8.00.2039 (SP3+)
☐ 客戶端:用戶端網路公用程式 → TCP/IP 啟用、端口一致
☐ 客戶端:查詢分析器測試 (逾時 15 秒,優於企管 4 秒)

第 4 層:驗證模式深度解析

錯誤訊息:「登入失敗,使用者 'sa' 不是受信任的連線」

  1. 企管 → Windows 驗證登入本地
  2. 右鍵伺服器 → 屬性 → 安全性標籤
  3. 驗證模式:**SQL Server 和 Windows** (混合模式)
  4. 重啟服務:net stop mssqlserver && net start mssqlserver
  5. 驗證:查詢分析器 → SQL Server 驗證 → sa + 密碼

第 5 層:進階驗證與工具

PortQry (Microsoft 免費工具)

PortQry.exe -n ServerIP -p TCP -e 1433
' 輸出 TCP port 1433 (ms-sql-s service): LISTENING

ODBC 測試 (排除驅動程式問題)

  1. 控制台 → 系統管理工具 → ODBC 資料來源 (32/64 位對應)
  2. 系統 DSN → 新增 → SQL Server → 完成精靈
  3. 「測試資料來源」按鈕 → 成功顯示「測試完成」

網路封包擷取 (Wireshark / NetMon)

  • 篩選 tcp.port == 1433
  • 觀察三向交握、TDS 封包、錯誤回應 (如 0x80004005)

常見陷阱與對策

現象根因對策
本地能連、遠程不行本地用 Named Pipes (445),遠程需 TCP/IP啟用 TCP/IP、檢查端口、防火牆
Telnet 通但查詢分析器逾時防火牆允許 SYN 但攔截 TDS 封包 / MTU 黑洞檢查防火牆深度檢測、調整 MTU、嘗試 VPN
間歇性連線失敗TCP Chimney Offload / RSS / 網卡省電停用網卡卸載功能、固定電源計畫
命名實例連不上SQL Browser 服務未啟動 / UDP 1434 被封鎖啟動 SQL Browser、放行 UDP 1434、或指定固定端口

企業管理器逾時調整

工具 → 選項 → 高級標籤 → 連線設定 → 登入逾時(秒) → 設為 30 以上

安全加固建議 (連通後必做)

  1. 修改 sa 密碼為高強度、定期輪換
  2. 建立專用應用帳號,最小權限 (db_datareader/writer + 執行 Proc)
  3. 停用 sa 登入:ALTER LOGIN sa DISABLE
  4. 啟用登入稽核:屬性 → 安全性 → 失敗的登入 / 成功和失敗
  5. 限制連線 IP:登入觸發器 / 防火牆規則 / 端點權限

系統化排查 + 進階工具驗證 + 事後加固,才是專業 DBA 的標準動作。

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