故障排除:用户 '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 登录名,请参阅如何更改服务器身份验证模式。 |