无法通过SQL Server身份验证在本地连接到SQL

时间:2015-09-09 07:06:24

标签: sql-server authentication

我配置了一个SQL Server实例,当我尝试连接本地(实例服务器)时,我遇到了de SQL Server身份验证的问题。

当我远程连接SQL时,SQL Server身份验证工作正常,但当我尝试在本地连接时,服务器返回SQL错误18456.

我不知道发生了什么......我可以远程连接但不能在本地连接

2 个答案:

答案 0 :(得分:1)

如果您的实例被调用SQLEXPRESS,那么您需要使用.\SQLEXPRESS(local)\SQLEXPRESSyourMachineName\SQLEXPRESS作为您的服务器名称 - 如果您有命名实例,则需要在服务器名称中指定实例的名称。

答案 1 :(得分:0)

此问题中没有足够的信息可以给出答案。唯一可以肯定的是,本地或远程连接并不会影响身份验证的执行方式。

简答

确保 连接到正确的服务器。如果是,请检查SQL Server的日志以查找失败的登录消息。消息的状态编号解释了失败原因。在SSMS对象资源管理器中,转到Management > SQL Server Logs > Current

长答案

错误是18456的事实意味着您可以连接到 服务器,但凭据将被拒绝。

这样做的一个原因可能是您连接到错误的服务器:连接到实例时,您必须始终提供实例名称,例如:.\INSTANCE或{{1 }}。如果您单击SSMS错误对话框中的MACHINE\INSTANCE enter image description here按钮,您将看到您尝试连接的服务器\实例。出于安全原因,此消息中未披露任何其他信息。

BTW,单击对话框的帮助按钮将打开一个帮助页面,快速解释可能发生的情况。

要诊断真实的身份验证问题,您需要找到完整的错误消息。完整消息(包括解释原因的状态编号)存储在服务器的日志中。在SSMS中,您将在Technical Details中找到该日志。

通常,检查SQL Server的日志应该是遇到与SQL语句没有直接关系的错误时的第一个操作。

similar SO question中讨论了各种状态的含义,this MSDN blog postAaron Bertrand详细文章中对此进行了讨论。

从SO问题复制的状态编号的快速列表:

Management > SQL Server Logs > Current