当我试图连接到SQL Server时,我得到这个错误。

Microsoft SQL Server错误:18456

有人能告诉我错误码是什么意思吗?


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

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

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

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

如果您试图使用“SQL Server身份验证”连接,那么您可能需要修改您的服务器身份验证:

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

右键单击服务器,然后单击Properties 进入安全页面 在服务器身份验证下,选择SQL Server和Windows身份验证模式单选按钮 单击OK 重新启动SQL服务

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

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

对于其他州,请参阅上述答案....

检查server->属性中是否启用了混合模式认证 然后在服务器->安全性中创建一个登录 在数据库中为该登录创建一个用户 然后通过右键单击实例并选择restart重新启动服务器

如果您更改了登录用户凭证或添加了新的登录用户,那么在您需要登录后,您将不得不重新启动SQL Server服务。为那

转到——>服务

然后进入“SQL Server(MSSQLSERVER)”,停止并重新启动

现在试着登录,我希望你能。

谢谢

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

18456错误状态列表

错误状态错误描述

状态2和状态5无效的用户id 状态6尝试使用带有SQL身份验证的Windows登录名 状态7登录被禁用,密码不匹配 状态8密码不匹配 状态9密码无效 状态11、状态12登录有效,但无法访问服务器 状态13 SQL Server服务暂停 状态18提示修改密码

潜在原因 下面是一些原因和简单的解释:

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

如何修复?检查“SQL Server和Windows身份验证模式”页面。

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

无效的密码:错误的密码或只是一个打字错误。记住,这个用户名在不同的服务器上可以有不同的密码。

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

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

希望这能有所帮助

我遇到过这个问题。

请看附件图片,

步骤1:转到服务器属性

第二步:进入安检

步骤3:更改服务器认证为SQL server和windowsauthentication模式

并重新启动Sql服务器。

Please check to see if you are connected to the network if this is a domain member PC. Also, make sure you are not on a dual home PC as your routes may be incorrect due to network metrics. I had this issue when I could not connect to the domain the SQL windows authentication switched to the local PC account but registered it as a SQL authentication. Once I disabled my wireless adapter and rebooted, the Windows integration switched back to the domain account and authenticated fine. I had already set up Mixed mode as you had already done as well so the previous posts do not apply.

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

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

首先去开始酒吧,然后搜索本地服务 然后点击“查看本地服务” 然后它将打开服务窗口,然后转到SQL Server(MSSQLSERVER),右键单击它,然后单击停止,然后再次右键单击它,单击启动。现在你可以登录,把你的用户名'sa'和密码是你的won密码。

你也可以用windows认证登录,然后运行下面的查询来启用它:

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

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

在我的情况下,多次错误的尝试锁定了帐户。为了做到这一点,我试着运行下面的查询,它工作: 修改登录密码=解锁 并确保通过右键单击Sql Server ->属性将特定用户的“强制密码安全”选项设置为未选中。

SQL Server连接故障

如果您无法连接SQL身份验证,并且您已经尝试了其他解决方案。

你可以尝试以下方法:

检查连接

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

检查状态

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

国家5

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

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

登录的状态

摧毁它,重建它,激活它。 重置密码。

还是……

“你看错地方了”或“你看到的不是你想的”。

Local DB和SQLEXPRESS冲突

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

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

附加提示:检查连接参数选项卡,如果你没有忘记一些奇怪的连接字符串。

另一个对我有效的解决方案。 server ->security->logins->new logins->General->创建您的用户名作为登录名,单击sql server authentication添加密码

取消选中密码验证三个复选框。 这是可行的。

请记住将服务器属性->Security从服务器身份验证更改为SQL server和Windows身份验证模式

就发生在我身上,而且和这里列出的其他病例都不一样。

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

当我连接到(我认为是)SQL Server并试图通过SSMS连接时,选择Windows身份验证,我得到了这个问题中提到的错误。在拉了很多头发之后,我浏览了所有的设置,包括SQL Server网络配置,MSSQLSERVER协议:

双击TCP/IP给我这个:

IP地址是另一个虚拟服务器!这最终使我意识到我只是混淆了服务器,在第二台服务器上一切都很好。

你可以在Linux中做MSSQL 修改sa帐号密码

Sudo /opt/mssql/bin/mssql-conf setup

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.

我在SQL实例下创建了一个新的sysadmin用户后得到了这个错误。 我的管理用户是在特定的域下创建的 MyOrganization / useradmin

在断开连接的环境中使用useradmin允许您使用SQL Server身份验证创建其他用户,但一旦您尝试登录,您就会得到

Microsoft SQL Server错误:18456

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

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

DBCC FREEPROCCACHE

DBCC DROPCLEANBUFFERS

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

重新连接SQL server后再做一件事,运行相同的查询。它会工作得很好。

只是一个更新,如果其他人有正确配置的登录错误,这里是解决方案:

如果您试图使用“SQL Server身份验证”连接,那么您可能需要修改您的服务器身份验证:

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

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

进入安全页面

在服务器身份验证下,选择SQL Server和Windows身份验证模式单选按钮

单击OK

重新启动SQL服务

点击“选项”,在“连接属性”下,在“连接到数据库:”旁边指定目录/数据库名称。我得到了错误,因为这被设置为<默认>,我需要指定dbname。

Microsoft SQL Server,错误:18456 我遇到了一个问题,因为我输入了错误的密码。 Microsoft SQL Server,错误码:18456 -密码错误。

参考:https://learn.microsoft.com/en - us/sql/relational databases/errors events/mssqlserver - 18456 -数据库引擎error?view=sql ver16——服务器

当我恢复我的电脑时,它发生在我身上

启用Windows和SQL身份验证 重启你的电脑

在vs code在我的情况下仍然错误,因为我忘记安装pyodbc:D