最近遇到的问题比较有意思。首先是很久没有打开测试数据库了,今天打开,使用service程序测试的时候出现下面的错误提示:
- Message: System.Data.SqlClient.SqlException: Login failed for user 'dcp_prod'.
- Reason: The password of the account has expired.
很明显,这个是因为密码失效了,dcp_prod这个账户使用了密码失效策略,打开数据库查看这个账户的属性,果然,Enforce password policy和Enforce password expiration这两个属性被选中了。
现在只需要重新设置一下密码就可以了。但是之后又出现了一个错误,提示如下:
- System.Data.SqlClient.SqlException:
- Login failed for user 'dcp_prod' because the account is
- currently locked out.
- The system administrator can unlock it.
- (该帐户当前被锁定。系统管理员可以解锁。)
这是什么原因呢,locked out是锁住了,然后使用administrator站好去解锁,字面意思是这样的,照着提示区做,再次打开账户属性。
(这里是回复正常之后的状态,默认是灰色不可用的)
点击Status标签,果然Login is locked out属性被选中,取消选中,点击OK,回到程序中。奇怪了,还是上面的locked out提示,打开属性查看,这个属性又一次被选中了。这样连续来回了好几次都是这样,开始纳闷了。后来在网上查,网上说有其他用户尝试连接数据库,我恍然大悟,是那个service程序在跟我争夺数据库。这个service程序每3秒钟会连接一次数据库,进行相应的操作,在这中间如果尝试修改密码,账户会被锁定的。我Administrator tool->service中关掉程序,修改密码,重新打开程序,这个错误就消失了。
原文链接:http://www.cnblogs.com/tylerdonet/archive/2011/04/04/2005395.html
【编辑推荐】