最近遇到的問題比較有意思。首先是很久沒有打開測試數據庫了,今天打開,使用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中關掉程序,修改密碼,重新打開程序,這個錯誤就消失了。