soh*_*aib 32 sql-server jdbc sql-server-2008
我写了一个非常简单的jdbc登录测试程序.经过各种各样的问题,我几乎得到了它的工作.几乎,似乎无法通过这个"SQLServerException:登录失败的用户xxxxx"问题.
我创建了一个简单的数据库PersonInfo然后我创建了用户user1 password1(sql身份验证).尝试后一切都无法连接到数据库.
我在Win 7上使用SqlServer2008,我从微软获得了最新的jdbc驱动程序.
我的代码是:
import java.sql.*;
public class hell {
public static void main(String[] args) {
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
Connection conn= DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=PersonInfo;user=Sohaib;password=0000;");
System.out.println("connected");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是例外
Exception: Unable to get connect
com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'Sohaib'.
and all other supporting errors..
Run Code Online (Sandbox Code Playgroud)
不幸的是,我现在死在水中,直到某种SqlServer Guru或Jdbc Guru对我怜悯并帮助我.
提前致谢.
Bry*_*wan 90
您的SQL Server是否处于"混合模式身份验证"?这是使用SQL Server帐户而不是Windows登录名登录所必需的.
您可以通过检查服务器的属性然后安全来验证这一点,它应该在'SQL Server和Windows身份验证模式'中
如果用户尝试使用无法验证的凭据登录,则会出现此问题.在以下情况中可能会发生此问题:
方案1:登录可能是SQL Server登录,但服务器只接受Windows身份验证.
方案2:您尝试使用SQL Server身份验证进行连接,但SQL Server上不存在使用的登录.
方案3:登录可能使用Windows身份验证,但登录是无法识别的Windows主体.无法识别的Windows主体意味着Windows无法验证登录.这可能是因为Windows登录来自不受信任的域.
用户也可能输入不正确的信息.
http://support.microsoft.com/kb/555332
小智 64
就我而言,我必须激活选项“SQL Server 和 Windows 身份验证模式”,请按照以下所有步骤操作:
2 - 转到选项安全
3 - 选中“SQL Server 和 Windows 身份验证模式”选项
5 - 重新启动您的 SQL Express 服务(键盘上的“Windows 键”并写入“服务”,然后输入键)

之后,我可以使用用户名和密码登录
我遇到了同样的问题,并通过将Windows用户名添加到SQL然后又添加到服务器来解决此问题,这是我的工作方式:
然后将该用户添加到服务器:
右键单击“服务器”>“权限”>“搜索”>“浏览”>“选择您的用户”(您会注意到现在创建的用户在列表中可用)
希望对您有所帮助;-)
当重用 EntityFramework 连接中的 ConnectionString 时,我们收到此错误。我们在连接字符串中有用户名和密码,但没有指定
“保留安全信息=True”。
因此,在建立连接后,凭据会从连接字符串中删除(因此我们重新使用了不完整的连接字符串)。当然,我们在使用这个设置时总是要三思而后行,但在这种特殊情况下,这是可以的。