SqlServer:用户登录失败

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

  • 对于任何想知道在哪里可以找到身份验证位的人(解决方案 1):(MS SQL Server Management Studio):“右键单击服务器(在对象资源管理器对话框内)> 属性 > 安全性 > 服务器身份验证”。接下来,通过“右键单击服务器 > 重新启动”来重新启动。 (4认同)
  • 不要忘记重新启动 SQL Server 服务(不是 SSMS) (3认同)

小智 64

就我而言,我必须激活选项“SQL Server 和 Windows 身份验证模式”,请按照以下所有步骤操作:

1 - 右键单击​​您的服务器 在此处输入图片说明

2 - 转到选项安全

3 - 选中“SQL Server 和 Windows 身份验证模式”选项

4 - 单击确定按钮 在此处输入图片说明

5 - 重新启动您的 SQL Express 服务(键盘上的“Windows 键”并写入“服务”,然后输入键) 在此处输入图片说明

之后,我可以使用用户名和密码登录

  • 我在设置新的开发机器时总是忘记这样做,现在肯定已经在这篇文章中找到了 5 次了:D (4认同)

Rob*_*uez 8

我遇到了同样的问题,并通过将Windows用户名添加到SQL然后又添加到服务器来解决此问题,这是我的工作方式:

首先,使用您的Windows用户名创建一个新的登录名: 在此处输入图片说明

单击搜索,然后在框中键入您的名称,然后单击检查名称。 在此处输入图片说明

然后将该用户添加到服务器:

右键单击“服务器”>“权限”>“搜索”>“浏览”>“选择您的用户”(您会注意到现在创建的用户在列表中可用)

在此处输入图片说明

希望对您有所帮助;-)


Ale*_*der 5

当重用 EntityFramework 连接中的 ConnectionString 时,我们收到此错误。我们在连接字符串中有用户名和密码,但没有指定

“保留安全信息=True”。

因此,在建立连接后,凭据会从连接字符串中删除(因此我们重新使用了不完整的连接字符串)。当然,我们在使用这个设置时总是要三思而后行,但在这种特殊情况下,这是可以的。