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

Logstash中用mssql-jdbc驱动AD凭据连接MSSQL认证失败求助

问题分析与解决:Logstash JDBC连接MSSQL认证失败

问题场景

使用Logstash JDBC输入插件搭配mssql-jdbc-12.6.4.jre11.jar连接MSSQL数据库时,出现Login failed for user 'domain\username'认证错误,但相同的认证参数通过sqlcmd工具可以成功连接。

核心原因与解决办法

1. 配置参数冲突

你的JDBC连接字符串中已经包含user=***\***;password=***参数,同时又单独配置了jdbc_user和jdbc_password字段。Logstash JDBC插件会优先使用单独配置的jdbc_user/jdbc_password,覆盖连接字符串中的对应参数——而你单独配置的jdbc_user仅填写了用户名,缺少域名部分,直接导致认证失败。

解决方式(二选一):

  • 方案一:删除连接字符串中的user和password,保留jdbc_user/jdbc_password并填写完整的域账号格式
input {
    jdbc {
        jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
        jdbc_driver_library => "/app/logstash/utils/jdbc/mssql-jdbc-12.6.4.jre11.jar"
        jdbc_connection_string => "jdbc:sqlserver://***:1433;databaseName=***;encrypt=true;trustServerCertificate=true;loginTimeout=30;"
        jdbc_user => "***\***"
        jdbc_password => "***"
        statement => "SELECT 1"
        schedule => "* * * * *"
    }
}
  • 方案二:删除单独的jdbc_user/jdbc_password配置,确保连接字符串中的user/password参数完整正确
input {
    jdbc {
        jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
        jdbc_driver_library => "/app/logstash/utils/jdbc/mssql-jdbc-12.6.4.jre11.jar"
        jdbc_connection_string => "jdbc:sqlserver://***:1433;databaseName=***;user=***\***;password=***;encrypt=true;trustServerCertificate=true;loginTimeout=30;"
        statement => "SELECT 1"
        schedule => "* * * * *"
    }
}

2. 反斜杠转义问题

Java环境中,反斜杠\是字符串转义字符。如果直接在连接字符串或jdbc_user中写domain\username,实际传递给JDBC驱动的内容会丢失反斜杠,变成domainusername,导致用户名识别错误。

解决方式:
将反斜杠替换为双反斜杠\\(转义后),或用正斜杠/替代:

  • 连接字符串中:user=***\\*** 或 user=***/***
  • jdbc_user配置中:jdbc_user => "***\\***"

3. 认证方式不匹配

sqlcmd通过-U传递domain\username时,默认可能使用SQL Server混合认证模式;而JDBC驱动针对域账号的集成认证需要额外配置:
如果你的账号是Windows域账号(而非SQL Server本地账号),需要在连接字符串中添加integratedSecurity=true,并确保对应平台的认证库(Windows为sqljdbc_auth.dll,Linux为sqljdbc_auth.so)在系统加载路径或Logstash可访问路径中。此时无需配置user和password参数。

示例配置:

input {
    jdbc {
        jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
        jdbc_driver_library => "/app/logstash/utils/jdbc/mssql-jdbc-12.6.4.jre11.jar"
        jdbc_connection_string => "jdbc:sqlserver://***:1433;databaseName=***;integratedSecurity=true;encrypt=true;trustServerCertificate=true;loginTimeout=30;"
        statement => "SELECT 1"
        schedule => "* * * * *"
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 07:58:18