远程连接到 MSSQL,使用 Windows 身份验证,JAVA

Posted

技术标签:

【中文标题】远程连接到 MSSQL,使用 Windows 身份验证,JAVA【英文标题】:Connect to MSSQL on remote, with windows authentication, JAVA 【发布时间】:2014-12-04 12:13:19 【问题描述】:

我需要连接到远程 ms sql。我有 windows 服务器登录信息要连接。该登录用户可以连接到 MSSQL 服务器。 (我的意思是我可以通过该用户的 Windows 身份验证连接到 MSSQL 服务器)

我想用 Java 代码做到这一点。我尝试使用 jdbc 驱动程序连接,但我不能。如何使用有权连接 MSSQL 2008 R2 的 windows 用户远程连接到 MSSQL 服务器。

String connectionurl = "jdbc:sqlserver://remoteIP:port;databaseName=databasename;intergratedsecurity=true";

甚至我尝试使用用户名密码,通过它我可以连接到远程 Windows 服务器。

String connectionurl = "jdbc:sqlserver://remoteIP:port;databaseName=databasename;username=ab;password=bc";

错误:

用户“”登录失败。 ClientConnectionId:916ac72a-9c78-45f9-bc61-680793d1fea7 在 com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216) 在 com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:254) 在 com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:84) 在 com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2908) 在 com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:2234) 在 com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41) 在 com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:2220) 在 com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696) 在 com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715) 在 com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1326)

【问题讨论】:

sql认证方式的JDBC sqlServer用户名就是user - reference MSDN 第一个 URL 适合我。不过,将正确版本的 sqljdbc_auth.dll 放入正确的目录有点棘手。 嗨 stuartLC,仍然收到同样的错误 String url = "jdbc:sqlserver://remoteIP:port;databaseName=databasename;user=username;password=password"; 【参考方案1】:

这只是一个错字吗?

intergratedsecurity=true

应该是

integratedSecurity=true

Windows 身份验证意味着 SQL Server 使用 Windows 登录令牌。由于这个错字,它需要一个您没有的用户名和密码。因此出现错误消息Login failed for user ''.

【讨论】:

我有用户名和密码来连接到远程服务器,即使我使用它也会引发同样的错误 Login failed for user 'username'. 作为windows还是SQL登录? 如果我使用 Integratedsecurity=true 那么它需要我的本地 Windows 用户名。用户 'GLOBAL_knp' 登录失败 我有 Windows 远程服务器的用户名和密码。 sql server使用windows认证,sql server我没有用户名和密码。 不,我没有。但是我有单独的凭据,我可以通过 Windows 身份验证通过 sql 连接到那里的 windows 服务器

以上是关于远程连接到 MSSQL,使用 Windows 身份验证,JAVA的主要内容,如果未能解决你的问题,请参考以下文章

无法在远程系统上使用 Windows 身份验证连接到 ms sql server

通过 Windows 远程桌面连接到 SQL 数据库:登录来自不受信任的域,不能与 WIndows 身份验证一起使用

如何从 php 连接到 mssql?

windows 2008 R2 出现身份验证错误。 无法连接到本地安全机构

通过***通过Windows身份验证连接到sql [关闭]

无法将 C# 应用程序连接到 MSSQL