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