远程连接到 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 身份验证一起使用