如何修复登录失败的Microsoft SQL Server错误:18456

如果服务器无法对连接进行身份验证,您可能会遇到 SQL Server 错误 18456,这可能是由于 SQL Server 的管理员权限不可用或在 SQL Server 设置中禁用了 TCP/IP 协议造成的

当用户尝试连接到 SQL 服务器(本地或远程)但遇到错误 18456(具有不同状态)时,就会出现此问题。

您可以通过尝试以下解决方案来修复 SQL Server 错误 18456,但在此之前,请检查重新启动服务器、客户端计算机和联网计算机是否可以解决问题。此外,请确保您输入的用户名和密码正确(而不是复制粘贴地址)。

此外,检查您是否输入了正确的数据库名称(其中没有拼写错误)并确保您已相应地更新了配置文件。此外,检查解锁帐户(通过使用查询 ALTER LOGIN WITH PASSWORD= UNLOCK)是否解决了问题。如果您在 SQL 错误日志中看到错误,请确保您的SQL 服务器未受到攻击。最后但同样重要的是,确保服务器时钟和客户端计算机时钟设置正确
如何修复登录失败的Microsoft SQL Server错误:18456

以管理员身份启动 SQL Server 并在服务器上禁用 UAC

如果 SQL 服务器没有执行其操作的提升权限,您可能会遇到错误 18456,以管理员身份启动它(或禁用服务器上的 UAC 控件)可能会解决问题。

以管理员身份打开 SQL Server

  1. 单击Windows并键入SQL Server Management Studio
  2. 现在右键单击 SMSS 并选择Run as Administrator
  3. 然后单击(如果收到 UAC 提示)并检查 SQL 服务器是否清除错误 18456。
  4. 如果不是,则检查在服务器计算机上禁用 UAC是否可以解决问题。

以单用户模式启动 SQL Server

  1. 单击Windows,键入并打开SQL Server Configuration Manager
  2. 现在右键单击SQL Server服务(在 SQL Server 服务选项卡中)并选择Properties
  3. 然后前往“启动参数”选项卡并在“指定启动参数”框中键入:
    -m
  4. 现在单击添加应用更改。
  5. 然后右键单击SQL Server服务并选择Restart
  6. 现在单击Windows,键入:SQL Server Management Studio,右键单击SMSS,然后选择Run as Administrator
  7. 现在检查您是否可以以管理员身份连接到 SQL Server。
  8. 如果是这样,则将域帐户添加到 SQL 服务器并为其分配SysAdmin角色。
  9. 现在返回SQL Server 配置管理器窗口并删除启动参数选项卡中的-m 参数
  10. 然后重新启动SQL Server 服务(第 3 步)并检查 SQL Server 是否正常工作。

如果问题仍然存在,请检查启动参数路径详细信息是否配置正确。如果问题仍然存在,请确保您的用户帐户对数据库/报告服务具有所需的权限,然后检查问题是否已解决。

在服务器配置管理器中启用 TCP/IP 协议

SQL 服务器中的错误代码 18456 表示服务器无法验证连接,如果在服务器配置管理器中禁用访问网络上的数据库所需的TCP/IP协议,就会发生这种情况。在这种情况下,在 SQL Server 配置管理器中启用 TCP/IP 可能会解决问题。

  1. 单击Windows并使用年份名称展开Microsoft SQL Server ,例如 2008(您可能需要滚动一下才能找到该选项)。
  2. 现在打开SQL Server 配置管理器并单击(如果收到 UAC 提示)。
  3. 然后,展开SQL Server 网络配置并在左窗格中选择(服务器/数据库名称)的协议。
  4. 现在,在右窗格中,双击TCP/IP并在Enabled的下拉列表中选择Yes
  5. 然后应用您的更改并单击Windows
  6. 现在键入Services右键单击Services 的结果,然后选择Run as Administrator
  7. 然后右键单击SQL Server(带有服务器名称)并选择Restart
  8. 现在检查 SQL 服务器是否清除错误 18456。

如果那没有解决问题,请确保连接到SQL 服务器的正确端口(特别是如果您在多服务器环境中使用该服务器)。

更改SQL Server的认证方式

如果 SQL Server 的身份验证方法配置不正确(例如:您尝试使用 SQL Server 身份验证登录,而服务器配置为使用 Windows 身份验证),则 SQL Server 可能会显示错误 18456。在这种情况下,更改SQL Server 的身份验证方法可能会解决问题。在继续之前,请确保已启用当前用户(例如 SA)的状态登录。

  1. 在Microsoft SQL Server Management Studio 的对象资源管理器中,右键单击您的服务器并选择Properties
  2. 现在,在左窗格中选择Security,然后在右窗格中选择SQL Server 和 Windows Authentication(反之亦然)。
  3. 然后应用您的更改,并在对象资源管理器中,右键单击服务器。
  4. 现在选择重新启动,重新启动后,检查是否可以连接到数据库而不会出现错误 18456。

如果您无法登录 SQL,则可以安装 MS Power Tools并在提升的命令中运行以下命令:

psexec.exe -i -s ssms.exe

之后可以使用SQL的安装账号进行修改,同时确保SA账号没有被禁用:

启用S​​A账户并重置账户密码

如果无法连接到SQL Server,那么启用SQL Server的SA账户并重置其密码可能会解决问题。

  1. 启动Microsoft SQL Server Management Studio(您可能必须使用域管理员帐户)并展开Security
  2. 然后双击登录并打开SA 
  3. 现在输入新密码并确认密码(确保使用强密码)。
  4. 然后前往服务器角色选项卡并确保选择以下角色:
    民众
    
    系统管理员
  5. 现在转到Status选项卡并在右窗格中选择Enabled(在 Login 下)。
  6. 然后应用您的更改并单击Windows按钮。
  7. 现在键入服务右键单击它。
  8. 然后选择以管理员身份运行并转向SQL Server 服务
  9. 现在右键单击它并选择Restart
  10. 重启服务后,检查SQL Server的18456错误是否清除。

创建新登录名并重新启动 Reporting Services

如果您无法使用任何帐户连接到数据库,那么创建一个新的登录名并重新启动报告服务可能会解决问题。

  1. 启动Microsoft SQL Server Management Studio 并展开其安全选项卡。
  2. 然后展开登录右键单击它。
  3. 如果使用 SQL Server 身份验证,现在选择新登录输入凭据(在登录名中选择计算机帐户)。
  4. 然后确保取消选中用户必须在下次登录时更改密码”并选择数据库
  5. 现在转到服务器角色选项卡并选择公共角色。
  6. 然后,在User Mapping选项卡中,确保选择数据库并选择db_owner
  7. 现在应用您的更改并单击Windows
  8. 然后键入服务右键单击服务结果。然后选择以管理员身份运行
  9. 现在右键单击SQL Server Reporting Service并选择Restart
  10. 然后重新连接数据库,查看SQL server是否没有报错18456。

如果是这样,请确保您已经在BUILTIN\administrators中创建了一个用户,然后您就可以使用该用户来管理 SQL Server。如果您已从备份恢复数据库,最好删除并重新添加用户以清除所有旧用户条目。如果您想以不同用户身份运行 SQL Server,请在 Windows 搜索中键入 Microsoft SQL Server,按住Shift 键并右键单击SQL Server,然后选择以不同用户身份运行。最后但同样重要的是,检查将Azure Data Studio与 SQL 服务器结合使用是否可以解决问题。

本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。
(0)
上一篇 2023年7月25日
下一篇 2023年7月25日

相关推荐