Troubleshooting Login failed Error 18456

原文
http://sql-articles.com/articles/troubleshooting/troubleshooting-login-failed-error-18456Written

附件:
下载文件 点击下载此文件

当使用sqlserver的用户登录的时候都会出现这个详错误代码为18456的错误.而详细信息则需要通ap_readerrorlog这个去获取.在这篇文章里,我将带你去查看产生此错的不同情况及相应的解决方案.

State1:

这个错误发生在sql
server2000用户登录时,在sql的error logs日志里几乎没有很多的错误原因描述.这个问题的解决也比较棘手.但如果是sql
server2005的话,每一次的登录失败都有一次一定的描述来判定是哪种情况导致登录失败.




STATE 2
& 5:


这种错误产生的主要原因是登录的用户不存在SQL
SERVER中.这个错误主要发生在用户指定了一个错误的用户或拼写用户名出现错误时产生..我在我的SQL
2005实例中测试一个不存在的用户名,看到的就是如下的错误截图,日志中也有比较详细的记录.




2009-10-08 10:57:30.520 Logon Errors: 18456, Severity:
14, State: 5.
2009-10-08 10:57:30.520 Logon Login failed for user
'DOESNTEXIST'. [CLIENT: ]


STATE
6:

这种情况主要发生在用户希望windows帐户去直接访问数据库却在数据库用户中指定了一个SQL帐号.这样导致不能例如
.我使用一个windows帐户(dl7728\test)去例如,但是我在帐户中又指定了一个用户名,所以导致登录失败,让我们看看日志里是如何描述的.



2009-10-08 11:05:47.180 Logon Error: 18456, Severity: 14,
State: 6.
2009-10-08 11:05:47.180 Logon Login failed for user 'dl7728\test'.
[CLIENT: ]


STATE 7 &
8:


如果是SA的登录密码的错误,则会出错state为7.其它的登录方式也则state为8




2009-10-08 11:14:18.440 Logon Error: 18456, Severity: 14,
State: 8.
2009-10-08 11:14:18.440 Logon Login failed for user 'docsadm'.
[CLIENT: ]

STATE
9:


出现state9的错误则意味着密码可能是因为密码策略将密码认为是一个无效的密码.这个API的策略
更多的请查看链接

http://msdn.microsoft.com/library/default.asp?url=/library/enus/netmgmt/netmgmt/net_validate_output_arg.asp.

STATE
11 &12:


这种情况意味着通过域登录SQL
Server的方式失败,即使可以通过域登录到操作系统,但还是不能登录进sql
server.要想解决这个问题,则需要在域登录sql中赋予有登录的权限才行.

2009-10-08 12:24:01.470 Logon
Error: 18456, Severity: 14, State: 11.
2009-10-08 12:24:01.470 Logon Login
failed for user ‘X\s_aa’. [CLIENT: ]


STATE
13


这种情况主要是因为某些sql
sever的服务停止了而产生.,也有可能产生错误代码为17142的错误





2009-10-08 12:31:28.620 spid57 Error: 17142, Severity:
14, State: 0.
2009-10-08 12:31:28.620 spid57 SQL Server service has been
paused. No new connections will be allowed. To resume the service, use SQL
Computer Manager or the Services application in Control Panel.
2009-10-08
12:31:28.620 Logon Error: 18456, Severity: 14, State: 13.
2009-10-08
12:31:28.620 Logon Login failed for user ''. [CLIENT: ]


STATE
16:


这种情况主要发生在sql
server中的默认数据库不可用(删除或停止的情况).这个错误在SSMS的窗口中显示的是4064的错误代码.其它产的操作日志却记录为18456





2009-10-08 13:01:49.410 Logon Error: 18456, Severity:
14, State: 16.
2009-10-08 13:01:49.410 Logon Login failed for user 'aaa'.
[CLIENT: ]
.

这种情况可能通过将默认数据库启用或设置其它数据库为默认的数据库,重新例如就可以解决.


还有其它的state状态需要说明,但是我这里不能表述得很细致

STATE
18:


这种情况主要在刚刚增加的sql用户需要修改他的第一次密码的时候弹出错误代码.

STATE
38:


这种情况主要发生在默认的数据库在sql2008或sql2008R2K中不可用

STATE
40:


这种情况主要发生在sql2008或sql2008R2下,在创建了一个新的登录帐号并赋予给默认数据库的时候,数据库恰好处于停止状态或不可用的时候所创建的帐户.

posted on 2011-04-27 22:31  德仔  阅读(5437)  评论(0编辑  收藏  举报