我正在尝试通过Java连接到SQL Server 2008。
sqljdbc4.jar
添加到我的项目库中。SQL异常:com.microsoft.sqlserver.jdbc.SQLServerException:用户''登录失败。 ClientConnectionId: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());
}
}
}
答案 0 :(得分:15)
如果您需要Windows身份验证,则需要将选项integratedSecurity=true
添加到JDBC URL:
jdbc:sqlserver://localhost:1433;databaseName=DB;integratedSecurity=true
您的Windows系统路径或通过sqljdbc_auth.dll
java.library.path
(小心32/64位)
有关详细信息,请参阅驱动程序手册:http://msdn.microsoft.com/en-us/library/ms378428.aspx#Connectingintegrated
答案 1 :(得分:1)
当我尝试从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);
答案 2 :(得分:1)
我有同样的问题。这是因为ConnectionUrl格式错误。您在ConnectionUrl中缺少用户名和密码。
String ConnectionUrl = "jdbc:sqlserver://localhost:1433;databaseName=DB","username","password");"
我希望它运作良好!!!
答案 3 :(得分:0)
这篇文章我的帮助: jdbc.SQLServerException: Login failed for user for any user
您需要integratedSecurity=true
标志,并确保服务器属性确实设置为安全下的“Windows身份验证模式”。