今天在訪問一個老項目時,后台報錯提示 oracle account locked,之前一直可以正常訪問的,不知道為什么會出現這個問題,百度一下原因大概是多次登陸失敗造成的,一般數據庫默認是10次嘗試失敗后鎖住用戶,找到原因后接下來就是解決問題了,解決思路很簡單:對用戶解鎖就行了,但是問題就出現在了查找用戶上。
本身對oracle的結構就不是很熟悉,所以在解鎖用戶的時候走了很多彎路,下面就一一道來:
一、因為數據庫已久遠,忘記了sys用戶密碼,所以只能遠程到服務器登陸,在登陸是確遇到了另外一個錯誤:insufficient privileges
百度后發現是Oracle DBA Group設置問題,於是進行設置,添加當前用戶jackvc.qin到ora_dba組:
設置完成后成功,sys成功鏈接:
接下來就是解鎖用戶了。
二、同樣是由於對Oracle實例、用戶概念不夠清楚,解鎖用戶時在dba_users表中竟然找不到被鎖定的用戶,百思不得其解。后經過查看Oracle配置文件終於發現了問題的所在,原來在服務器上創建了三個數據庫實例:databaseA、orcl、databaseC,而那個被鎖定的用戶是屬於實例orcl的,但是在用sys用戶登錄的時候我並未指定連接到哪個實例(默認連接了databaseA),所以找不到被鎖定的用戶。找到了原因重新登錄sys用戶,並指定連接到orcl實例:
找到被鎖定用戶,解鎖用戶:
alter user scott account unlock;
重啟項目,數據庫鏈接成功!