故障排除:用户 'x' 登录失败

因密码或用户名错误而使身份验证失败并导致连接尝试被拒时,类似下面的消息将返回到客户端:“用户 '<user_name>' 登录失败”。(Microsoft SQL Server,错误: 18456)”。

返回到客户端的其他信息有:

“用户 '<user_name>' 登录失败。(.Net SqlClient 数据访问接口)”

------------------------------

“服务器名称: <computer_name>”

“错误号: 18456”

“严重性: 14”

“状态: 1”

“行号: 65536”

也可能返回以下消息:

“消息 18456,级别 14,状态 1,服务器 <computer_name>,第 1 行”

“用户 '<user_name>' 登录失败。”

其他错误信息

为了增强安全性,返回到客户端的错误消息有意隐藏身份验证错误的本质。但是,在 SQL Server 错误日志中,对应的错误包含映射到身份验证失败条件的错误状态。将错误状态与以下列表进行比较以确定登录失败的原因。

状态

说明

2

用户 ID 无效。

5

用户 ID 无效。

6

尝试同时使用 SQL Server 身份验证与 Windows 登录名。

7

登录已禁用,密码不正确。

8

密码不正确。

9

密码无效。

11

登录有效,但服务器访问失败。

12

登录是有效的登录,但服务器访问失败。

18

必须更改密码。

存在其他错误状态,并表示一个意外的内部处理错误。

示例

在此示例中,身份验证错误状态为 8。这指示密码不正确。

日期

来源

消息

2007-12-05 20:12:56.34

登录

错误: 18456,严重性: 14,状态: 8。

2007-12-05 20:12:56.34

登录

用户 '<user_name>' 登录失败。[CLIENT: <IP 地址>]

注意注意

如果 SQL Server 使用 Windows 身份验证模式进行安装,并随后更改为 SQL Server 和 Windows 身份验证模式,则最初禁用 sa 登录名。这会导致状态 7 错误:“用户 'sa' 登录失败”。要启用 sa 登录名,请参阅如何更改服务器身份验证模式