相关疑难解决方法(0)

到 SQL Server 数据库的 Java 连接:用户“sa”登录失败

我正在尝试连接到我使用 SQL Server 2012 创建的数据库,但我一直收到错误消息。这是连接的代码:

Driver d = (Driver)Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
        String DB_URL = "jdbc:sqlserver://localhost:1433;databaseName=Tema6;user=sa;password=123456";
        java.sql.Connection con = DriverManager.getConnection(DB_URL);
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

Login failed for user 'sa'. ClientConnectionId:e6335e64-ca68-4d72-8939-5b7ded951424
Run Code Online (Sandbox Code Playgroud)

我已从 SQL Server Config 启用 TCP/IP 协议,我确定“sa”帐户已启用且密码正确。任何人都可以帮助我吗?

编辑:这是整个堆栈跟踪。

com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'sa'. ClientConnectionId:e6335e64-ca68-4d72-8939-5b7ded951424
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216)
at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:254)
at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:84)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2908)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:2234)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41)
at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:2220)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1326)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at Connection.main(Connection.java:12)
Run Code Online (Sandbox Code Playgroud)

EDIT2:用 jTDS 替换驱动程序后:

java.sql.SQLException: Login …
Run Code Online (Sandbox Code Playgroud)

java sql-server

4
推荐指数
1
解决办法
8万
查看次数

将SQL Server 2008连接到Java:登录失败,表示用户错误

我正在尝试将我的Java代码连接到Microsoft SQL Server 2008 R2 Express数据库.我已下载Microsoft SQL Server JDBC驱动程序3.0并将sqljdbc4.jar添加到我的类路径中.我正在使用Netbeans并且还在我的项目中包含了sqljdbc4.jar.

我在SQL Server Management Studio中创建了一个名为TestDB1的数据库,并添加了一些我将用于测试的列和值.我通过右键单击服务器JACOB = PC\SQLEXPRESS-> Properties-> Secuity并从Windows身份验证模式更改为SQL Server和Windows身份验证模式,从Windows身份验证模式更改.

然后我通过右键单击JACOB-PC/SQLEXPRESS-> Secuity Folder-> Logins Folder下的窗口浏览器中的Login文件夹创建了一个新的登录,并添加了一个新的登录名.我给它命名为jhaip2,切换到SQL Server身份验证并将密码设置为jacob.未选中强制密码策略和强制密码过期.默认数据库设置为TestDB1.然后在TestDB1-> Secuity-> Users-> jhaip2->数据库角色成员资格中我将jhaip2设置为db_owner(我无法在没有这样做的情况下登录管理工作室中的数据库,可能不是正确的做法?).然后我重新启动了服务器.

现在对于我的java代码,它基本上是JDBC Driver 3.0示例代码的直接副本,除了没有Windows身份验证.

package databasetest1;

import java.sql.*;

public class connectURL {

   public static void main(String[] args) {

      // Create a variable for the connection string.
      String connectionUrl = "jdbc:sqlserver://localhost:1433;" + "databaseName=TestDB1;";

      // Declare the JDBC objects.
      Connection con = null;
      Statement stmt = null;
      ResultSet rs = null;

      try {
         // Establish the …
Run Code Online (Sandbox Code Playgroud)

java sql sql-server jdbc sql-server-2008

2
推荐指数
2
解决办法
4万
查看次数

标签 统计

java ×2

sql-server ×2

jdbc ×1

sql ×1

sql-server-2008 ×1