登录Microsoft SQL Server错误:18456

时间:2014-01-04 15:43:50

标签: sql-server connection error-code

尝试连接SQL Server时出现此错误。

  

Microsoft SQL Server错误:18456

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

22 个答案:

答案 0 :(得分:630)

如果您尝试使用“SQL Server身份验证”进行连接,则可能需要修改服务器身份验证:

在对象资源管理器中的Microsoft SQL Server Management Studio中:

  1. 右键单击服务器,然后单击Properties

  2. 转到Security页面

  3. Server authentication下选择SQL Server and Windows Authentication mode单选按钮

  4. 点击OK

  5. 重新启动SQL服务

答案 1 :(得分:64)

查看数据平台团队的这篇博客文章。

http://blogs.msdn.com/b/sql_protocols/archive/2006/02/21/536201.aspx

您确实需要查看错误消息的状态部分以找到问题的根本原因。

2, 5 = Invalid userid
6 = Attempt to use a Windows login name with SQL Authentication
7 = Login disabled and password mismatch
8 = Password mismatch
9 = Invalid password
11, 12 = Valid login but server access failure
13 = SQL Server service paused
18 = Change password required

之后,谷歌如何解决这个问题。

答案 2 :(得分:24)

在打开之前,右键单击并选择“以管理员身份运行”。这解决了我的问题。

答案 3 :(得分:10)

首先查看错误的详细信息 如果"州"是" 1" 确保在SQL Server / Properties / Security下为SQL和Windows身份验证设置了数据库。

对于其他州看到上述答案......

答案 4 :(得分:7)

  1. 检查您的服务器 - >属性
  2. 中是否启用了混合模式身份验证
  3. 然后在server-> security
  4. 中创建一个登录名
  5. 在数据库中为该登录创建用户
  6. 然后通过右键单击实例重新启动服务器并选择重新启动

答案 5 :(得分:6)

我遇到过这个问题。

请查看附件,

请将您的sql身份验证更改为SQL Server和WindowsAuthenication模式,

并重新启动您的Sql服务器。

enter image description here

答案 6 :(得分:4)

刚好发生在我身上,结果与此处列出的所有其他情况不同。

我碰巧在同一个集群中托管了两个虚拟服务器,每个虚拟服务器都有自己的IP地址。主机将其中一个服务器配置为SQL Server,将另一个配置为Web服务器。但是,SQL Server已在两者上安装并运行。主人忘了提到哪些服务器是SQL,哪些是Web,所以我假设第一个是Web,第二个是SQL。

当我连接到(我想到的)SQL Server并尝试通过SSMS连接,选择Windows身份验证时,我收到了此问题中提到的错误。在拉了很多头发后,我仔细检查了所有设置,包括SQL Server网络配置,MSSQLSERVER协议:

  

screenshot of TCP/IP configuration

双击TCP / IP给了我这个:

  

TCP/IP properties, showing wrong IP address

IP地址属于另一个虚拟服务器!这最终让我意识到我只是在服务器之间感到困惑,并且在第二台服务器上运行良好。

答案 7 :(得分:2)

右键单击“用户”,转到属性,将默认数据库更改为master 这是图像的屏幕打印,显示了如果您有错误19456需要检查的内容。有时它默认为用户没有权限的数据库

答案 8 :(得分:2)

18456错误状态列表

错误状态错误说明

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

潜在原因 以下是原因列表和一些简要说明:

未启用SQL身份验证:如果您第一次在SQL Server实例上使用SQL登录,则通常会出现错误18456,因为服务器可能在Windows身份验证模式下设置(仅限)。

如何修复?请检查此SQL Server and Windows Authentication Mode page.

无效的userID: SQL Server无法在您尝试获取的服务器上找到指定的UserID。最常见的原因是此userID尚未被授予服务器访问权限,但这也可能是一个简单的错误或您不小心尝试连接到不同的服务器(如果您使用多个服务器,则为典型)

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

不太常见的错误:可能在服务器上禁用了userID。为SQL身份验证提供了Windows登录(更改为Windows身份验证。如果使用SSMS,则可能必须以不同的用户身份运行才能使用此选项)。密码可能已过期,可能还有其他几个原因....如果你知道其他任何一个让我知道。

18456状态1解释:通常Microsoft SQL Server会为您提供错误状态1,除了您有18456错误之外,实际上并不意味着什么。状态1用于隐藏实际状态以保护系统,这对我来说是有意义的。以下是包含所有不同状态的列表,有关检索准确状态的详细信息,请访问Understanding "login failed" (Error 18456) error messages in SQL Server 2005

希望有所帮助

答案 9 :(得分:2)

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

答案 10 :(得分:1)

对我而言,错误登录和密码。

答案 11 :(得分:1)

此外,您只需使用Windows身份验证登录并运行以下查询即可启用它:

ALTER LOGIN sa ENABLE ;  
GO  
ALTER LOGIN sa WITH PASSWORD = '<enterStrongPasswordHere>' ;  
GO

来源:https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/change-server-authentication-mode

答案 12 :(得分:1)

如果这是域成员PC,请检查您是否已连接到网络。此外,请确保您不在双家用PC上,因为网络指标可能导致您的路由不正确。当我无法连接到SQL Windows身份验证切换到本地PC帐户但将其注册为SQL身份验证的域时,我遇到了此问题。一旦我禁用了无线适配器并重新启动,Windows集成就会切换回域帐户并进行身份验证。我已经设置了混合模式,因为之前的帖子不适用。

答案 13 :(得分:1)

如果您更改登录用户凭据或添加新登录用户,则需要登录后必须重新启动SQL Server服务。那个

转到 - &gt;服务 gray color row

然后转到SQL Server(MSSQLSERVER)并停止并重新启动

现在尝试登录,希望你能。

由于

答案 14 :(得分:0)

我相信如果您尝试使用Active Directory中定义的用户登录,但尝试使用&#34; SQL Server身份验证&#34;在登录屏幕中。我不知道如何使用NTLM / Windows身份验证指定其他用户:当我单击Windows身份验证下拉列表时,用户名和密码将被清空,我只能以自己身份登录。

答案 15 :(得分:0)

在我的情况下,多次错误的尝试锁定了帐户。为此,我尝试运行以下查询并且它有效: ALTER LOGIN WITH PASSWORD = UNLOCK 并确保设置选项&#34;强制密码安全&#34;通过右键单击Sql Server来取消选中特定用户的选项 - &gt;属性。

答案 16 :(得分:0)

SQL Server连接疑难解答

如果您无法使用SQL身份验证进行连接,并且您已尝试过其他解决方案。

您可以尝试以下方法:

检查连接性

  • 禁用防火墙。
  • 在1434上运行PortQry并检查答案。

检查状态

  • 尝试连接SSMS或sqlcmd并查看消息。
  • 状态1很少被记录,但只是意味着你没有权利知道真实的状态。
  • 查看SQL server目录中的日志文件以了解状态。

州5

什么?我的登录不存在?它就在那里,我可以在SSMS中看到它。怎么会这样 ?

  

最可能的解释是最有可能是正确的解释。

登录状态

  • 销毁,重新创建,启用它。
  • 重置密码。

或者...

“你不看正确的地方”或“你所看到的不是你的想法”。

本地数据库和SQLEXPRESS冲突

如果您使用Windows身份验证连接SSMS,并且您的实例名为SQLEXPRESS,那么您可能正在查看 LocalDb 而不是正确的服务器。所以你刚刚在LocalDb上创建了你的登录信息。

当您通过SQL Server身份验证与SSMS连接时,它将尝试连接到尚未存在您心爱登录的SQLEXPRESS真实服务器。

附加说明: 如果您没有忘记某些奇怪的连接字符串,请检查连接参数标签。

答案 17 :(得分:0)

我遇到了同样的问题。您需要先启用混合模式身份验证。 更多细节 How to enable Mixed Mode Authentication

答案 18 :(得分:0)

您可以在Linux中为mssql做    更改一个帐户的密码

sudo / opt / mssql / bin / mssql-conf设置

The license terms for this product can be downloaded from
 http://go.microsoft.com/fwlink/?LinkId=746388 Jump Jump
and found in /usr/share/doc/mssql-server/LICENSE.TXT.
Do you accept the license terms? [Yes/No]:yes
  Setting up Microsoft SQL Server
Enter the new SQL Server system administrator password:  --Enter strong password
Confirm the new SQL Server system administrator password: --Enter strong password
 starting Microsoft SQL Server...
 Enabling Microsoft SQL Server to run at boot...
Setup completed successfully.

答案 19 :(得分:0)

这最近发生在我身上,是因为应用程序连接字符串中的数据库名称拼写错误。

答案 20 :(得分:0)

在我的SQL实例下创建一个新的sysadmin用户后,出现此错误。 我的管理员用户是在特定域下创建的 MyOrganization /用户管理员

在断开连接的环境中使用 useradmin 可以使您使用SQL Server身份验证来创建其他用户,但是一旦尝试登录就可以获取

  

Microsoft SQL Server错误:18456

要解决此问题,请尝试再次连接到组织网络并在连接时创建用户,然后断开连接即可使用。

答案 21 :(得分:0)

我遇到了同样的问题。如果您看到它,请运行此查询:

DBCC FREEPROCCACHE

DBCC DROPCLEANBUFFERS

然后显示 18456 错误代码。

重新连接 SQL 服务器后,再次执行相同的查询。它会正常工作。