登录到Microsoft SQL Server错误:18456

346

在尝试连接SQL Server时,我遇到了以下错误。

Microsoft SQL Server 错误: 18456

有人能告诉我这个错误代码的含义吗?


8
初步搜索似乎表明该错误代码是登录失败,并且通常会附带更详细的信息。 - David
2
而更详细的信息应该在SQL Server错误日志中。这个数字本身故意不告诉你太多,这样黑客就不能利用它来找出他们的尝试出错的地方。 - Tony Hopkinson
在此处找到有用的信息:https://sqlblog.org/2011/01/14/troubleshooting-error-18456 - sairfan
1
我刚刚需要以管理员身份运行。 - Jacksonkr
只需检查此解决方案: https://stackoverflow.com/questions/41386538/microsoft-sql-server-error-18456# - Akash Singh Sengar
25个回答

3

18456错误状态列表

错误状态 错误描述

  • 状态2和状态5 无效的用户ID
  • 状态6 尝试使用Windows登录名进行SQL身份验证
  • 状态7 登录已禁用且密码不匹配
  • 状态8 密码不匹配
  • 状态9 无效的密码
  • 状态11和状态12 有效的登录但服务器访问失败
  • 状态13 SQL Server服务暂停
  • 状态18 需要更改密码

可能的原因 以下是一些原因及简要说明:

未启用SQL身份验证:如果您在SQL Server实例上首次使用SQL登录,则很常见出现错误18456,因为服务器可能设置为仅使用Windows身份验证模式。

如何解决?请查看此SQL Server和Windows身份验证模式页面

无效的用户ID:SQL Server无法在您尝试获取的服务器上找到指定的UserID。最常见的原因是该userID在服务器上没有被授予访问权限,但这也可能是一个简单的拼写错误或您意外地尝试连接到不同的服务器(如果您使用多个服务器,则通常如此)。

无效的密码:密码错误或只是拼写错误。请记住,该用户名在不同服务器上可能有不同的密码。

较少见的错误:userID可能已被禁用。为SQL身份验证提供了Windows登录(更改为Windows身份验证。如果您使用SSMS,则可能需要以不同的用户运行以使用此选项)。密码可能已过期,可能还有其他几个原因...如果您知道其他原因,请告诉我。

18456状态1解释:通常,Microsoft SQL Server会给出错误状态1,实际上除了提示您有18456错误之外,它并没有任何意义。状态1用于隐藏实际状态以保护系统,这对我来说很有意义。下面是所有不同状态的列表,有关检索准确状态的更多信息,请访问了解SQL Server 2005中“登录失败”(错误18456)错误消息

希望能帮到您


3

右键点击用户,进入属性,将默认数据库更改为master。 以下是屏幕截图,显示了如果出现错误19456需要检查的内容。有时候默认数据库是用户没有权限的数据库。


2

首先,进入开始栏,然后搜索本地服务。 然后点击“查看本地服务”。 然后它将打开服务窗口,然后进入SQL Server(MSSQLSERVER),右键单击它,然后单击停止,再次右键单击它,然后单击启动。现在您可以登录并将用户名设置为'sa',密码是您的密码。


1
对我来说,这是错误的登录名和密码。

1
请检查您的网络连接是否正常,如果这是一个域成员PC,请确认您不是在双网卡的PC上,因为由于网络度量值的原因,您的路由可能会出现错误。当我无法连接到域时,我遇到了这个问题,SQL的Windows身份验证切换到了本地PC帐户,但将其注册为SQL身份验证。一旦我禁用了我的无线适配器并重新启动,Windows集成就会切换回域帐户,并进行身份验证。我已经像您一样设置了混合模式,所以之前的帖子不适用。

0

我相信这种情况可能发生在您尝试使用Active Directory中定义的用户登录,但在登录界面中尝试使用“SQL Server身份验证”。我不知道如何使用NTLM / Windows身份验证指定不同的用户:当我单击Windows身份验证下拉菜单时,用户名和密码被清空,我只能以自己的身份登录。


0
在我的情况下,多次错误尝试锁定了账户。为了解锁账户,我尝试运行以下查询,并且它起作用了: ALTER LOGIN WITH PASSWORD= UNLOCK 并确保通过右键单击 Sql Server -> 属性来取消特定用户的“强制密码安全”选项。

0

在我的SQL实例下创建新的系统管理员用户后,我遇到了这个错误。我的管理员用户是在特定域下创建的MyOrganization/useradmin

在断开连接的环境中使用useradmin可以使用SQL Server身份验证创建其他用户,但是一旦尝试登录,您会收到以下错误:

Microsoft SQL Server Error: 18456

要解决此问题,请尝试重新连接到您的组织网络并在连接时创建用户,然后您可以断开连接并正常工作。


0

我曾经遇到过同样的问题。如果你看到了它,请运行这个查询:

DBCC FREEPROCCACHE

DBCC DROPCLEANBUFFERS

然后它显示一个18456错误代码。

再做一件事情,重新连接SQL服务器后再运行相同的查询。它会正常工作。


0
点击“选项”,在“连接属性”下面指定目录/数据库名称,紧挨着“连接到数据库:”。我之前遇到了错误,因为它被设置为<default>,而我需要指定dbname。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接