问题描述:      布署某一网站后,主页面不能登录,访问同一服务器上的另一网站,突然系统报18456错误,提示信息是“无法连接到×××服务器”,其他信息为“用户‘sa’登录失败。(Microsoft SQL Server,错误:18456)”。

问题原因:
     布署网站时,数据库连接文件中的密码不正确,所以多次访问主页面后就出现问题.

原因是: Sql Server 2005的sa用户默认是启用了“强制实施密码策略”。而一般默认的Windows帐户密码策略或者AD(域帐户)密码策略都是3-6次错误口令登陆失败后,系统暂时冻结该用户。冻结的时间要看系统设定的长短。该问题就出在网站数据库连接文件用错误的sa密码多次试图访问系统,而sa的“强制实施密码策略”起了作用。

图解:
   
sa帐户被锁定,原因是sa的帐户启用了“强制实施秘密策略”,或者“强制过期”。在登录用户sa的登录属性对话框中,能看到改选项是否选定状态。如下图(1)所示(windows身份登录数据库后--安全性--登录名中右击sa--属性):
   

sql server数据库用户被锁定原因 sql数据库账号锁定_服务器

1

     选中“强制实施秘密策略”后,sql server2005会调用windows或者域的帐户管理策略。如果是windows的帐号管理策略,可以通过“控制面板”的“本地安全设置”中看到“帐户策略”情况,其中的“密码策略”可以设置用户秘密的失效时间、长短等,另外在“帐户锁定策略”可以设置“帐户锁定阈值”,即帐户用错误的口令尝试登录几次,系统即自动锁定该帐户。可以参考图(2)。




sql server数据库用户被锁定原因 sql数据库账号锁定_数据库_02


2


 

      如果sql server的帐号已经被锁定,在该帐户的登录属性里面能看到如图(3)所示。

 


sql server数据库用户被锁定原因 sql数据库账号锁定_windows_03


3)

 

 

       这是即使用集成windows的帐户登录sql server,取消图(3)“登录已锁定”的勾选。再重新用sa的正确口令登录sql server时,也会出现18456的错误。如图(4)所示。这是因为sa的口令需要重新设置。再次用集成windows的帐户登录sql server的帐户登录sql server进行sa的密码重新设置,即可解决问题。

sql server数据库用户被锁定原因 sql数据库账号锁定_sql server_04


4)


       总结:第一,如果数据库安全性没有特殊的要求,去掉图(2)所示的“强制实施秘密策略”勾选,能避免该类问题的发生。第二,布署网站时一定要注意数据库连接文件的修改.