现在的位置: 首页 > 综合 > 正文

SQL Server2000因更改域帐号密码而无法启动

2013年10月11日 ⁄ 综合 ⁄ 共 894字 ⁄ 字号 评论关闭

今天公司迁移了邮件系统,副作用就是要修改域帐号的登录密码。等我去启动SQL Server2000的时候,我发现我不能启动服务了。得到以下错误信息:

Error 1069:The Service did not start due to a logon failure.

我的SQL Server连接属性设置的是“使用 Windows 身份验证”,现在我的登录密码改掉了,SQL Server看样子还不知道我的新密码。我怎么样可以避免重装来解决这个问题呢?在网上搜了一圈,找到一个解决方法:

打开控制面板—>管理工具—>服务,
找到你的SQL服务实例,或者是默认的 MSSQL,或者是MSSQL$<自定义实例名>。
右健单击该服务名—>属性—>登陆页(Log On)—>登陆身份—>选择“此帐户”(This account)—> 帐号还是以前的域帐号,密码和确认密码处输入修改后的域登录密码。
修改完后SQLServer服务就可以启动了。

另外,登陆身份也可以改为“本地系统帐户”(Local System account)。

虽然接触SQL Server2000时间也不算短了,要不是碰到这个问题,我还真没想过它的认证方式,我一直以为它也是支持单点登录(Single Sign-On SSO)的。我以为选择了Windows 身份验证后,SQLServer会到域控制器上去验证域用户身份,现在看来不完全是这样的。它把身份验证的信息存在本地,当我们修改了域帐号的登录密码并用新密码登录后,本地缓存了我们的认证信息,SQLServer拿它储存的信息跟本地的缓存一比较发现不匹配就报错,而不是到域控制器上去验证。但是SQLServer某种角度看也是支持SSO的,当我们用上面讲的方法去修改本地储存的密码时,它确实连接到域控制器上去认证我们的身份,然后刷新本地的信息。我在修改时故意输错几次域帐号密码,域控制器就把我的域帐号锁住了,所以我知道SQLServer是拿了我提供的信息到域控制器上去认证了。只能说,SQL Server2000在处理域帐号修改密码这件事上不是那么及时,而域用户修改密码在很多公司是过了一段时间就要执行的事情,并且新密码还不能跟老密码重复。 

抱歉!评论已关闭.