对于Server登录错误的疑难解答,有哪些建议?问题如下:
发布于 2013-11-13 20:01:16
要连接到的实例上的Server错误日志将包含Server生成的有关登录失败的任何错误。如果SQL由于某种原因拒绝连接/失败登录,则通常会生成18456错误。在SQL方面,此错误将具有一个错误状态,为错误的原因提供线索。然而,在客户端,您可能会看到或可能看不到有用的细节--很可能只会看到错误状态为1。
要查看完整的错误消息,最好查看要连接到的Server,并查看Server错误日志。如果连接正在连接到Server,则应该会看到连接尝试的错误。在那里,如果您知道在哪里查找,则这些信息比其他错误消息更有用。
这可能是由几个因素造成的,但很可能您没有处理登录失败。登录失败可以很好地在错误日志中显示自己。在这种情况下,您很可能正在处理连接到Server的失败。您可以先对此问题进行故障排除,并至少验证您正在连接到Server,并且这里没有任何问题。在这个答案中,这篇Technet Twiki文章是一个非常好的资源,至少可以让您开始工作,而不是进入解决问题的所有潜在步骤。
对于各种错误状态和错误消息的含义,有几种资源。下面的内容是从这个msdn链路中粘贴的,您可以从18456错误的一些更常见的状态开始。这些状态在将来的版本或您所处的版本中可能会发生变化,因此注意消息和状态并深入了解问题是一个好主意。
国家-意思是
用户ID无效。用户ID无效。6-尝试在Server身份验证中使用Windows登录名。7-登录被禁用,密码不正确。密码是错误的。密码无效。11 -登录有效,但服务器访问失败。登录是有效登录,但服务器访问失败。密码必须更改。
还有很多其他的状态,在编辑中,我会添加更多,或者在其他答案中,您会看到更多。这个链接还有许多其他状态,其中大多数状态对于大多数2000以上版本的Server都有效。重要的是查看服务器端的错误日志并读取消息--在登录失败的情况下,消息往往更有用。
同样,State 1是客户机上的一个通用消息。
其他错误-- Server登录或连接失败的其他错误。在未来的编辑或回答来自其他人,更多的信息也可以添加。
这取决于..。
状态2&5表示无效的用户ID。请检查您正在使用的用户。您的登录是否存在?您是否指定了数据库,登录是否以用户的身份存在?是否已将其映射为该数据库中的用户。
六号州-噢!您正在尝试以使用SQL身份验证的方式传递Active登录名。基本上试图传递'FunDomain\Mwalsh‘的登录名,但是您正在连接到SQL身份验证,而不是信任的。这有点像一个2或5,只是有点描述。
状态7-登录被禁用..。看看哪里是残疾,为什么是残疾,并纠正这种情况。
国家8和9-不良密码。打错了吗?密码更改了吗?
状态18 --我从未在野外遇到过这种情况。但它告诉我们,我们的密码被设置为要更改。我想,如果您从使用SQL身份验证的应用程序(如Great .)连接,您可能会看到这一点。并设置了一个新帐户的密码,需要更改的第一次使用-但您的应用程序不明白这一点,或有一个功能,以改变密码。如果您只使用SSMS,您只需要一个对话框来更改密码,一切都很好。
11 & 12意味着同样的事情
。
这可能是Server服务作为本地系统运行的情况,而不是可能访问域信息的域帐户。
它也可能需要通过kerberos授权--例如,在通过Windows身份验证访问链接服务器和传递凭据时--而双跳需要的是Kerberos,而不是NTLM。所以你需要研究一下Kerberos。
即使是这条消息也可能意味着其他事情--我最近在迁移到具有现有登录的服务器之后看到了这一点--在我的客户端环境中,这是一个非常古老的登录。删除并重新创建登录解决了这个问题。为什么?这可能是一些事情,但这个西蒙·萨宾的邮件在几年前是一个极好的资源在这里。
在回答这个问题之后,我想查看一个关于默认数据库的错误代码,我发现了一个亚伦·伯特兰的伟大博文,他在这里回答了很多问题:-)去查看他的资源以获得更多的错误消息,包括许多不是在Server 2012或2008中,但现在仍然在使用的版本。很棒的东西:-)
https://dba.stackexchange.com/questions/53279
复制相似问题