有没有一种方法可以通过Windows身份验证连接到SQL Server,而无需使用Java的Integrated Security = true选项

时间:2019-05-07 11:07:01

标签: sql-server jdbc

我想通过Java Eclipse使用Windows用户名和密码连接到SQL Server

能够通过Integrated Security = true进行连接。

但是需要尝试其他域。

使用下面的连接URL连接。

"jdbc:sqlserver://servername;databaseName=database;integratedSecurity=true"

Jar-MsSQL-jdbc-7.2.2.jre8.jar

此URL失败

"jdbc:sqlserver://servername;databaseName=database;user=domain\user;password=password"

错误消息

  

com.microsoft.sqlserver.jdbc.SQLServerException:用户登录失败   “域\用户”。 ClientConnectionId:df0fd280-7727-446f-96e4-ce972fda26d7     在   com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:262)     在   com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:258)     在com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:104)     在   com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:5036)     在   com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3668)     在   com.microsoft.sqlserver.jdbc.SQLServerConnection.access $ 000(SQLServerConnection.java:94)     在   com.microsoft.sqlserver.jdbc.SQLServerConnection $ LogonCommand.doExecute(SQLServerConnection.java:3627)     在   com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7194)     在   com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2935)     在   com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2456)     在   com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:2103)     在   com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1950)     在   com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1162)     在   com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:735)     在java.sql.DriverManager.getConnection(未知源)在   java.sql.DriverManager.getConnection(未知源),位于   sql.Javaconnection.main(Javaconnection.java:27)

2 个答案:

答案 0 :(得分:1)

.NET使用相同的选项。答案是不。

答案 1 :(得分:0)

  

通过Java蚀...能够与Integrated Security连接= true ...但需要尝试其他域。

要使用Windows集成身份验证使用无法在本地登录或模拟的帐户(即来自另一个域的帐户)连接到SQL Server,可以使用RUNAS /NETONLY或在帐户中设置适当的凭据。 Windows凭据管理器。

在两种情况下,您都将配置一个凭据,该凭据将用于网络资源的NTLM身份验证,而无需使用这些凭据进行本地登录。您可以使用integratedSecurity=true代替在连接字符串中提供凭据。