Microsoft SQL Server错误:18456

时间:2016-12-29 20:11:27

标签: sql-server connection database-connection ssms error-code

当我尝试连接Windows身份验证或SQL Server身份验证时,我从SQL Server Management Studio收到错误18456,如下图所示。

Windows身份验证 enter image description here

SQL Server身份验证 enter image description here

我想在此链接中实现解决方案:Login to Microsoft SQL Server Error: 18456但我无法启动引擎。另外,我不知道我的SQL Server身份验证密码。

我该怎么办?

6 个答案:

答案 0 :(得分:3)

我经常在SQL Server 2012及更高版本(通常使用新安装)中看到此问题,原因是SQL Server 2012及更高版本不会自动为窗口管理员提供SQL Server中的管理员权限。

这将使您根本无法访问SQL Server,在这种情况下,我使用以下方法:

  1. 运行SQL Server配置管理器。

    SQL Server配置管理器的位置:

  2. SQL Server 2016    C:\Windows\SysWOW64\SQLServerManager13.msc
    SQL Server 2014    C:\Windows\SysWOW64\SQLServerManager12.msc
    SQL Server 2012    C:\Windows\SysWOW64\SQLServerManager11.msc
    SQL Server 2008    C:\Windows\SysWOW64\SQLServerManager10.msc
    
    1. Right-Click SQL Server服务并转到Properties
    2. 转到Startup Parameters标签,然后在其中添加-m参数。这将导致SQL-Server以单用户模式运行。
    3. Restart SQL Server服务,确保SQL Server代理无法启动,如果它启动它可能会获得与SQL Server的单个可用连接。
    4. 成功重新启动SQL Server服务后,右键单击SSMS和Run as Administrator
    5. 此时,SQL Server将允许您以管理员身份连接到SQL Server,将您的域帐户添加到SQL Server分配SysAdmin角色。
    6. 关闭Management Studio,返回SQL Server配置管理器从启动参数中删除-m。重新启动SQL Server服务和tadaaa。
    7. 也不要在其他人使用的服务器上执行此操作。

答案 1 :(得分:0)

一种选择是安装新的SQL Server实例并将任何数据库附加到新实例,但由于各种原因这可能很棘手,尤其是如果您没有master的最新备份数据库中。

因此,我建议遵循Microsoft here提供的建议,并以单用户模式启动实例,然后允许安装实例的计算机上的任何本地管理员获取访问权限并更正身份验证问题(重置密码等)。

当然,这假设您可以访问计算机上的管理员帐户,希望您这样做。

答案 2 :(得分:0)

我遇到了类似的问题,这篇文章中提到的解决方案为我工作: https://stackoverflow.com/a/23395581/4409488

它的基本含义是,您必须将默认登录模式更改为 Windows身份验证,而将其更改为 SQL Server和Windows身份验证模式

右键单击服务器=> SelectProperties =>安全页=>服务器身份验证=> 选择 SQL Server和Windows身份验证模式单选按钮

服务

重新启动 SQL服务器。而且你应该很好走。

答案 3 :(得分:0)

关于

的具体情况
Login failed for user 'sa'. Reason: Password did not match that for the login provided. [CLIENT: ##.##.##.##]

及其伴随消息

Error: 18456, Severity: 14, State: 8.

关于SQL Server 2014,Windows Server 2019和SOLIDWORKS专业文档管理。

摘要

测试一个不同且不太复杂的密码。

详细信息

我的第一个成功运行的凭证包含14个字符:大写和小写字母,数字和该集合中的符号“ $!%^(){} []; :: <>?”。这使SOLIDWORKS专业文档管理客户端堆栈可以通过SA数据库帐户与远程SQL Server Express 2014堆栈进行通信,而不会出现上述错误。

通过搜索“ SQL Server 2014密码限制”,可以找到此有用的帖子 https://social.msdn.microsoft.com/Forums/sqlserver/en-US/52eda46d-5814-45a0-b676-4676f0853474/invalid-password-symbols-for-sql-server-2014-login?forum=sqlsecurity

这些被接受的答案中的链接-虽然对于SQL Server 2014或Windows Server 2019凭据不是权威性的-却使我不满意我的具体经历:

TBD-将上述链接替换为

的确定链接
  • SQL Server数据库家族的密码规范文档
  • 用于计算机(本地),工作组和AD域的密码规范文档
  • 文档阐明了政策可能导致在相关授权处理系统中发生的密码的特定更改。

服务器端客户端授权栈可能不遵循相同的规范和限制。可能需要先获得这两者的详细知识,才能首先实现功能,然后再达到一定的安全级别。

愿您的开悟比我的更快,瘀伤更少。

答案 4 :(得分:0)

  1. 使用Windows身份验证登录
  2. 右键单击服务器连接
  3. 选择属性
  4. 在左侧面板上选择“安全性”
  5. 检查SQL Server和Windows身份验证
  6. 重新启动您的sql server服务
  7. 享受... :-) enter image description here

答案 5 :(得分:0)

先查看sql server日志文件,知道状态号。然后,根据该州编号查找。对我来说,知道州号后查找会更快。我开始了这个有用的链接 https://sqlblog.org/2020/07/28/troubleshooting-error-18456