java - 身份验证失败 Sql Server JDBC Java 8

标签 java sql-server jdbc

我正在尝试连接到名为“Shipworks1”的 Sql Server 数据库。 SQL Server 的安装是由名为 Shipworks 的运输软件安装的。由于某种原因我无法进行身份验证。这是我的代码:

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package daily.sales.report;

/**
 *
 * @author Line Computer
 */

import java.sql.*;

public class DailySalesReport {

   /**
     * @param args the command line arguments
     */
   public static void main(String[] args) {

           Connection con = null;
           String conUrl = "jdbc:sqlserver://LINECOMPUTER\\SHIPWORKS; databaseName=ShipWorks1; user=sa; password=XXXXXXXXXXXXXXX;";

       try {
            // ...
        con = DriverManager.getConnection(conUrl);
        // ... 
      } catch (Exception e) { e.printStackTrace(); }
             finally {
               if (con != null) try { con.close(); } catch(Exception e) {}
             }
    }

}

我的错误:

com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'sa'. ClientConnectionId:916f2fe6-49c3-475f-bb09-f2ff14cd92c9
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:217)
at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:279)
at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:99)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4346)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3160)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:43)
at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3123)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7505)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2445)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1981)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1628)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1459)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:773)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1168)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:270)
at daily.sales.report.DailySalesReport.main(DailySalesReport.java:27)
BUILD SUCCESSFUL (total time: 0 seconds)

我可以像这样连接到数据库管理器中的数据库:

enter image description here

如有任何帮助,我们将不胜感激。谢谢!

最佳答案

您应该决定要使用哪种类型的身份验证:Windows 身份验证或 SQL 身份验证。

也许它对你有用:

String userName ="username";
String password ="password";

String url ="jdbc:sqlserver://myDB\\SQLServer;databaseName=name";

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn = DriverManager.getConnection(url, userName, password);

另外,看看这个 - https://thusithamabotuwana.wordpress.com/2012/07/19/connecting-to-sql-server-from-java/

关于java - 身份验证失败 Sql Server JDBC Java 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46456731/

相关文章:

sql-server - 在 SQL Server 中使用缓存表,我疯了吗?

sql-server - 如何在我的搜索中集成 Elasticsearch

python - 使用 python 连接 SQL Server 时遇到问题

java - 在 JDBC 准备语句中使用变量而不是参数索引

java - 以反射方式访问匿名类实例中的任何类型的 "closure variable"

java - Java中获取窗口句柄

java - 从 JFIF 读取图像数据?

java - Java 8 中异常类型推断的一个特殊特性

java - 我使用哪个 MySQL 连接器 : mysql-connector-java-5. 1.46.jar 或 mysql-connector-java-5.1.46-bin.jar 有什么区别?

java - 在将数据插入 DB2 的 sql 表之前,如何对列的值进行大小验证?