You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot 3.3.0通过Windows认证连接非1433端口SQL Server问题

问题解决方案

一、所需额外依赖检查

你当前已添加的Spring Data JDBC和MS SQL Server Driver是核心依赖,但Windows认证(integratedSecurity=true)需要额外添加mssql-jdbc-auth依赖——官方mssql-jdbc包本身不包含Windows身份验证所需的本地库(比如Windows下的sqljdbc_auth.dll),缺少它会导致认证失败。

Maven依赖配置

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc-auth</artifactId>
    <version>12.6.0.jre17</version> <!-- 适配Spring Boot 3.3.0的JDK17环境 -->
    <scope>runtime</scope>
</dependency>

Gradle依赖配置

runtimeOnly 'com.microsoft.sqlserver:mssql-jdbc-auth:12.6.0.jre17'

二、连接失败的排查与修复步骤

1. 验证本地库加载

添加mssql-jdbc-auth后,Windows环境下IDE通常会自动将sqljdbc_auth.dll加入JVM库路径;如果仍报错,可手动从依赖jar包中提取dll文件,放到JDK的bin目录,或通过JVM参数指定路径:-Djava.library.path=path/to/dll。

2. 检查服务器连通性

  • 确认myServer是正确的服务器名称/IP,用ping myServer测试连通性;
  • 验证端口12345是否开放,可使用telnet myServer 12345或端口扫描工具排查防火墙拦截问题。

3. 补充数据源配置(可选但建议)

在application.properties中明确指定驱动类,避免Spring Boot自动检测异常:

spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.datasource.url=jdbc:sqlserver://myServer:12345;databaseName=myDb;integratedSecurity=true

注意:Windows认证模式下无需配置spring.datasource.username和spring.datasource.password。

4. 权限验证

确保运行Spring Boot程序的Windows用户,拥有访问目标SQL Server数据库myDb的权限(可在SQL Server Management Studio中检查用户映射)。

5. 查看详细异常日志

开启Debug级日志定位具体问题,在application.properties中添加:

logging.level.com.zaxxer.hikari=DEBUG
logging.level.org.springframework.jdbc=DEBUG

根据日志中的具体异常(如“找不到sqljdbc_auth.dll”“拒绝访问”“连接超时”)针对性解决。

内容的提问来源于stack exchange,提问作者faujong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 14:35:03