惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
V
V2EX
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
云风的 BLOG
云风的 BLOG
Blog — PlanetScale
Blog — PlanetScale
Recent Announcements
Recent Announcements
Last Week in AI
Last Week in AI
博客园 - Franky
Microsoft Security Blog
Microsoft Security Blog
Hugging Face - Blog
Hugging Face - Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Vercel News
Vercel News
MyScale Blog
MyScale Blog
大猫的无限游戏
大猫的无限游戏
罗磊的独立博客
H
Help Net Security
月光博客
月光博客
Martin Fowler
Martin Fowler
博客园 - 【当耐特】
宝玉的分享
宝玉的分享
P
Proofpoint News Feed
GbyAI
GbyAI
腾讯CDC
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - 德仔

Win7环境下装SQL SERVER 2005 IIS的设置 C# Winform 使用 MYSQL 新增,读取数据乱码问题 gridview中的" "问题解决方法 Compilation Error 解决方案汇集 KM知识管理推广方案 Oracle EBS: ASCP 学习 PL-SQL问题集锦 Global.asax文件失效的解决办法 一份DBA面试题 oracle:IF语句 Loop循环 Cursor的用法(二) Oracle:IF语句 Loop循环 Cursor的用法(一) Oracle EBS:PO行接收关闭后修改其它行自动打开 异常:HRESULT: 0x80070057 (E_INVALIDARG) 的处理 NPOI动态获取数据源绑定Gridview显示 Oracle EBS:SQL 失效一揽子PO协议 Web开发电子期刊 2010年第5期(第45期) Oracle EBS: 获取PO审批人名字 [译]Oracle EBS:追踪PO全过程 Oracle PL/SQL:IF语句的基本使用
[译]SQL2005/2008错误18456 登录失败的 解决方案
德仔 · 2011-04-27 · via 博客园 - 德仔

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下,在创建了一个新的登录帐号并赋予给默认数据库的时候,数据库恰好处于停止状态或不可用的时候所创建的帐户.