我配置了一个SQL Server实例,当我尝试连接本地(实例服务器)时,我遇到了de SQL Server身份验证的问题。
当我远程连接SQL时,SQL Server身份验证工作正常,但当我尝试在本地连接时,服务器返回SQL错误18456.
我不知道发生了什么......我可以远程连接但不能在本地连接
答案 0 :(得分:1)
如果您的实例被调用SQLEXPRESS
,那么您需要使用.\SQLEXPRESS
或(local)\SQLEXPRESS
或yourMachineName\SQLEXPRESS
作为您的服务器名称 - 如果您有命名实例,则需要在服务器名称中指定实例的名称。
答案 1 :(得分:0)
此问题中没有足够的信息可以给出答案。唯一可以肯定的是,本地或远程连接并不会影响身份验证的执行方式。
简答
确保 连接到正确的服务器。如果是,请检查SQL Server的日志以查找失败的登录消息。消息的状态编号解释了失败原因。在SSMS对象资源管理器中,转到Management > SQL Server Logs > Current
。
长答案
错误是18456的事实意味着您可以连接到 服务器,但凭据将被拒绝。
这样做的一个原因可能是您连接到错误的服务器:连接到实例时,您必须始终提供实例名称,例如:.\INSTANCE
或{{1 }}。如果您单击SSMS错误对话框中的MACHINE\INSTANCE
按钮,您将看到您尝试连接的服务器\实例。出于安全原因,此消息中未披露任何其他信息。
要诊断真实的身份验证问题,您需要找到完整的错误消息。完整消息(包括解释原因的状态编号)存储在服务器的日志中。在SSMS中,您将在Technical Details
中找到该日志。
通常,检查SQL Server的日志应该是遇到与SQL语句没有直接关系的错误时的第一个操作。
similar SO question中讨论了各种状态的含义,this MSDN blog post和Aaron Bertrand详细文章中对此进行了讨论。
从SO问题复制的状态编号的快速列表:
Management > SQL Server Logs > Current