【问题标题】:Connecting to SQL Server on different server using windows auth使用 windows auth 连接到不同服务器上的 SQL Server
【发布时间】:2020-04-28 23:43:50
【问题描述】:

我从早上开始就一直在努力尝试将我的 java web 应用程序连接到不同系统上的数据库(使用 windows auth)。

我设法从我的 SSMS 访问它,我去了 Windows 凭据管理器并创建了与安装 SQL 服务器的其他系统相同的凭据,以下是详细信息:

现在,当我在 SSMS 中使用 IP(192.168.2.172) 作为服务器名称时,我可以使用 windows auth 进行连接,但无法从我的 Java Web 应用程序访问它。 我正在使用带有以下字符串的 jtds,但它不起作用。请帮忙

<property name="url" value="jdbc:jtds:sqlserver://192.168.2.172:1433/realtime;useNTLMv2=true" />

我经常收到此错误:

Caused by: java.sql.SQLException: Login failed. The login is from an untrusted domain and cannot be used with Windows authentication.
        at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:372)
        at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2988)
        at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2421)
        at net.sourceforge.jtds.jdbc.TdsCore.login(TdsCore.java:649)
        at net.sourceforge.jtds.jdbc.JtdsConnection.<init>(JtdsConnection.java:371)
        at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:184)
        at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
        at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
        at org.apache.commons.dbcp.BasicDataSource.valida

【问题讨论】:

  • 听起来您应该与网络管理员讨论两个域之间的信任问题。
  • @Larnu 感谢您的回复,但是如果是网络问题,SSMS 怎么能够连接?
  • 那么 Java 是否在来自不同域的凭据下运行?
  • @Larnu 你的意思是Java安装在我的机器上?我认为这应该使用我的系统凭据,还是有办法检查?
  • 在connstring中设置域*.com/questions/3682852/…

标签: java sql-server ssms windows-authentication jtds


【解决方案1】:

Microsoft JDBC Driver for SQL Server 在所有平台上通过Kerberos 支持 Windows 身份验证,并在使用 Kerberos 或 NTLM 的 Windows 上使用 Type 2 身份验证 dll:Connecting with integrated authentication On Windows

【讨论】:

    最近更新 更多