无法登录到SQL Server + SQL Server身份验证+错误:18456

时间:2010-03-19 03:38:41

标签: sql-server sql-server-2008

我在localhost \ sql2008服务器上创建了登录帐户(例如User123)

映射到数据库(默认)

SQL Server上的身份验证模式设置为(Windows和SQL)

但是登录到SQL Server失败,并显示以下消息(对于User123)

注意:已多次检查是否正确输入了用户名/密码

错误详情:

  

用户'User123'登录失败   (Net.SqlClient数据提供程序)

     

服务器名称:localhost \ sql2008错误   号码:18456严重性:14状态:1   行号:65536

对此有任何帮助。

7 个答案:

答案 0 :(得分:321)

您需要启用SQL Server身份验证:

  1. 在对象资源管理器中,右键单击服务器并单击“属性”
  2. DBMS Properties dialog

    1. 在“服务器属性”窗口中,单击左侧页面列表中的“安全性”。在“服务器身份验证”下,选择“SQL Server和Windows身份验证模式”单选选项。
    2. SQL Server Authentication dialog

      1. 重新启动SQLEXPRESS服务。

答案 1 :(得分:46)

默认情况下,登录失败错误消息只是由于登录凭据不匹配而导致服务器拒绝客户端用户连接。您可能检查的第一个任务是查看该用户是否对该SQL Server实例和相关数据库具有相关权限,这很好。显然,如果没有设置必要的prvileges,那么你需要通过为该用户登录授予相关权限来解决该问题。

如果该用户在数据库和数据库上有相关的授权,则应该这样做。服务器如果服务器遇到该登录的任何凭据问题,那么它将阻止将身份验证授予SQL Server,客户端将收到以下错误消息:

Msg 18456, Level 14, State 1, Server <ServerName>, Line 1
Login failed for user '<Name>'

现在好了,通过查看错误消息,您觉得这对于了解Level&amp;州。默认情况下,无论验证登录时的问题性质如何,操作系统错误都会将“状态”显示为1。因此,为了进一步调查,您还需要查看相关的SQL Server实例错误日志,以获取有关Severity&amp ;;的更多信息。这个错误的状态。您可以在日志中查找相应的条目:

2007-05-17 00:12:00.34 Logon     Error: 18456, Severity: 14, State: 8.
or

2007-05-17 00:12:00.34 Logon     Login failed for user '<user name>'.

如上所述,严重程度&amp;关于错误的状态列是找到问题根源的准确反映的关键。在上述错误号为8的状态表示由于密码不匹配导致的身份验证失败。联机丛书指出:默认情况下,严重性低于19的用户定义消息在发生时不会发送到Microsoft Windows应用程序日志。因此,严重性低于19的用户定义消息不会触发SQL Server代理警报。

SQL Server协议(Dev.team)项目经理Sung Lee概述了有关错误状态描述的更多信息:下表中提供了常见错误状态及其描述:

ERROR STATE       ERROR DESCRIPTION
------------------------------------------------------------------------------
2 and 5           Invalid userid
6                 Attempt to use a Windows login name with SQL Authentication
7                 Login disabled and password mismatch
8                 Password mismatch
9                 Invalid password
11 and 12         Valid login but server access failure
13                SQL Server service paused
18                Change password required


Well I'm not finished yet, what would you do in case of error:

2007-05-17 00:12:00.34 Logon     Login failed for user '<user name>'.

您可以看到该SQL Server实例的错误日志中没有定义严重性或状态级别。所以下一个故障排除选项是查看事件查看器的安全日志[编辑因为缺少屏幕截图但是你得到了

想法,在事件日志中查看有趣的事件]。

答案 2 :(得分:42)

我有同样的问题,但是因为我没有将服务器身份验证设置为“SQL Server和Windows身份验证模式”(你有)我只是想在这里提一下,以防有人在你的问题中错过了它

您可以通过

访问此内容
  • 右键单击实例(IE SQLServer2008)
  • 选择“属性”
  • 选择“安全”选项
  • 将“服务器身份验证”更改为“SQL Server和Windows身份验证模式”
  • 重新启动SQLServer服务
    • 右键点击实例
    • 点击“重新启动”

答案 3 :(得分:18)

您可以通过

访问此内容
Right click on instance (IE SQLServer2008)
Select "Properties"
Select "Security" option
Change "Server authentication" to "SQL Server and Windows Authentication mode"
Restart the SQLServer service
    Right click on instance
    Click "Restart"

只为其他人阅读此内容:这也适用于2012 SQL Server。 感谢

答案 4 :(得分:0)

问题的正确解决方法是确保为SQL Server启用SQL Server身份验证。

答案 5 :(得分:0)

启用“ SQL Server和Windows身份验证模式”后,导航至以下内容。

  1. 计算机管理(在“开始”菜单中)
  2. 服务和应用程序
  3. SQL Server配置管理器
  4. SQL Server网络配置
  5. MSSQLSERVER协议
  6. 右键单击TCP / IP并启用它。

最后重新启动SQL Server。

答案 6 :(得分:0)

如果您不重新启动 SQL Server,这些解决方案都不会为您工作。

找到SQLServerManager13.msc

然后在 SQL Server Services 部分选择 SQL Server 并重新启动它。

Object ExplorerMS SQL Server Management Studio 菜单中选择您的服务器。

Right clickrestart