接收 SQLException "Login failed for user"连接到 SQL Server 2008



我正在尝试通过Java连接到SQL Server 2008。

  1. 我已将sqljdbc4.jar添加到我的项目库中
  2. 没有为数据库访问数据库设置用户名和密码(Windows身份验证)
  3. 1433端口正在侦听,但我仍然收到此异常:

SQL异常:com.microsoft.sqlserver.jdbc.SQLServerException:用户"登录失败。客户端连接ID:085d5df3-ad69-49e1-ba32-b2b990c16a69

相关代码:

public class DataBases 
{
    private  Connection link;
    private  java.sql.Statement  stmt;
    public    ResultSet rs;
    public DataBases() 
    {  
        try 
        {    
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            String connectionUrl = "jdbc:sqlserver://localhost:1433;databaseName=DB;";
            Connection con = DriverManager.getConnection(connectionUrl);
        } 
        catch (SQLException e) 
        {
            System.out.println("SQL Exception: "+ e.toString());
        }
        catch (ClassNotFoundException cE)
        {
            System.out.println("Class Not Found Exception: "+ cE.toString());
        }
     }
}

如果您想要windows身份验证,您需要将选项integratedSecurity=true添加到JDBC URL:

jdbc:sqlserver://localhost:1433;databaseName=DB;integratedSecurity=true

您还需要在Windows系统路径或通过java.library.path 定义的目录中使用sqljdbc_auth.dll(注意32/64位)

有关详细信息,请参阅驾驶员手册:http://msdn.microsoft.com/en-us/library/ms378428.aspx#Connectingintegrated

当我尝试从Java连接到Microsoft SQL server时,也遇到了同样的问题。我使用了jTDS驱动程序,而不是常规的SQLJdbdc驱动程序。

        Class.forName("net.sourceforge.jtds.jdbc.Driver"); 
        String connectionUrl = "jdbc:jtds:sqlserver://localhost:1433;databaseName=DB;integratedSecurity=true";
        Connection con = DriverManager.getConnection(connectionUrl);

我遇到了同样的问题。这是因为ConnectionUrl的格式错误。ConnectionUrl中缺少用户名和密码。

String ConnectionUrl = "jdbc:sqlserver://localhost:1433;databaseName=DB","username","password");"

我希望它运行良好!!!

这篇文章是我的帮助:jdbc。SQLServerException:任何用户的用户登录失败

您需要integratedSecurity=true标志,并确保服务器属性确实在"安全"下设置为"Windows身份验证模式"。

相关内容

  • 没有找到相关文章

最新更新