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

SQL Server 2000 JDBC 連線失敗完整排查指南

     編輯:關於SqlServer

現象描述

專案引用 3 支標準 JDBC 驅動程式 JAR、已套用 SP3 修正包、資料庫權限設定無誤、連接埠 1433 已開放,但在 Java 應用程式中仍無法建立連線,錯誤訊息通常為 Connection refused、Login failed 或 Network error。

根本原因

**SQL Server 驗證模式設定為「僅 Windows 驗證」**,導致混合模式 (SQL Server + Windows) 下的 SQL 登入帳號 (如 sa) 無法通過驗證。這是安裝預設值或安全性強化後常見的設定遺漏。

解決步驟 (圖文說明)

  1. 開啟 **企業管理器** → 展開 **主控台根節點** → **Microsoft SQL Server** → **SQL Server 群組** → **(本機 Windows)**。
  2. 右鍵點選伺服器名稱 → 選擇 **屬性** → 切換至 **安全性** 索引標籤。
  3. 在 **驗證模式** 區塊,將 **「僅 Windows NT 驗證」** 改為 **「SQL Server 和 Windows NT 驗證」 (混合模式)**。
  4. 點擊 **確定**,系統提示需重新啟動 SQL Server 服務才能生效。
  5. 於 **服務** 中重新啟動 **MSSQLSERVER** 服務。

驗證連線

重啟服務後,使用 Java 程式或查詢分析器以 sa 帳號測試連線,應即可成功。

補充排查清單 (若上述無效)

檢查項目說明
JDBC URL 格式jdbc:sqlserver://host:1433;databaseName=DBName (Microsoft 驅動) 或 jdbc:microsoft:sqlserver://host:1433;DatabaseName=DBName (舊版)
驅動程式版本確認 JAR 版本與 JDK、SQL Server 版本相容;建議使用 Microsoft 官方 mssql-jdbc 最新版。
防火牆/網路伺服器防火牆開放 1433 (TCP);若為具名執行個體,需開放 SQL Browser 服務 (UDP 1434) 並確認動態連接埠。
TCP/IP 通訊協定「伺服器網路公用程式」→ 啟用 TCP/IP,預設連接埠 1433,取消勾選「隱藏伺服器」。
用戶端網路公用程式啟用 TCP/IP,別名設定正確指向伺服器 IP/埠號。
登入帳號權限SQL 登入帳號已對應目標資料庫使用者,且具備 db_datareader/db_datawriter 或 db_owner 角色。

最佳實務建議

  • 生產環境避免直接使用 sa,建立專用應用程式帳號並套用最小權限原則。
  • 連線字串加密儲存 (如 Azure Key Vault、Web.config 加密區段),勿硬編碼於程式碼。
  • 啟用連線池 (Pooling=true),設定適當 Max Pool Size、Connection Timeout。
  • 定期檢視 SQL Server 錯誤記錄檔與 Windows 事件檢視器,偵測潛在連線問題。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved