專案引用 3 支標準 JDBC 驅動程式 JAR、已套用 SP3 修正包、資料庫權限設定無誤、連接埠 1433 已開放,但在 Java 應用程式中仍無法建立連線,錯誤訊息通常為 Connection refused、Login failed 或 Network error。
**SQL Server 驗證模式設定為「僅 Windows 驗證」**,導致混合模式 (SQL Server + Windows) 下的 SQL 登入帳號 (如 sa) 無法通過驗證。這是安裝預設值或安全性強化後常見的設定遺漏。
重啟服務後,使用 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,建立專用應用程式帳號並套用最小權限原則。Pooling=true),設定適當 Max Pool Size、Connection Timeout。