我正在尝试通过Java连接到SQL Server 2008。
- 我已将
sqljdbc4.jar
添加到我的项目库中 - 没有为数据库访问数据库设置用户名和密码(Windows身份验证)
- 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身份验证模式"。