今天測試庫有個賬戶的密碼忘了,試了十幾次就開始提示:
ERROR:
ORA-28000: the account is locked
意思明顯就是賬戶被鎖了,可能是使用者的資源設定中對密碼重試次數做了限制。
驗證:
SQL> select a.username, b.profile, b.resource_name, b.limit
2 from dba_users a, dba_profiles b
3 where a.username = ‘GALTTEST’ and a.profile = b.profile;
GALTTEST DEFAULT COMPOSITE_LIMIT UNLIMITED
GALTTEST DEFAULT SESSIONS_PER_USER UNLIMITED
GALTTEST DEFAULT CPU_PER_SESSION UNLIMITED
GALTTEST DEFAULT CPU_PER_CALL UNLIMITED
GALTTEST DEFAULT LOGICAL_READS_PER_SESSION UNLIMITED
GALTTEST DEFAULT LOGICAL_READS_PER_CALL UNLIMITED
GALTTEST DEFAULT IDLE_TIME UNLIMITED
GALTTEST DEFAULT CONNECT_TIME UNLIMITED
GALTTEST DEFAULT PRIVATE_SGA UNLIMITED
GALTTEST DEFAULT FAILED_LOGIN_ATTEMPTS 10
GALTTEST DEFAULT PASSWORD_LIFE_TIME 180
GALTTEST DEFAULT PASSWORD_REUSE_TIME UNLIMITED
GALTTEST DEFAULT PASSWORD_REUSE_MAX UNLIMITED
GALTTEST DEFAULT PASSWORD_VERIFY_FUNCTION NULL
GALTTEST DEFAULT PASSWORD_LOCK_TIME 1
GALTTEST DEFAULT PASSWORD_GRACE_TIME 7
确實如此,隻允許10次嘗試,之後賬戶就會被鎖。
解鎖方法很多,通過PLSQL Developer工具解鎖可能是最簡單、最直覺的。
1、用管理者賬戶登入PLSQL Developer(登入名可以為system,選擇類型的時候把Normal修改為Sysdba)。
2、左側選擇My Objects,檢視Users檔案夾。
3、選擇GALTTEST使用者,右擊點選”編輯“;
4、把“帳戶被鎖住”的勾去掉;(也可以修改密碼)。
5、點選“應用”再點選“關閉”;
6、重新登入就可以通過驗證了;
其實使用sqlplus指令行解鎖也很簡單,用管理者賬号sysdba角色登入,執行alter user GALTTEST account unlock;,即可解鎖。
另外,使用如下指令将profile的FAILED_LOGIN_ATTEMPTS屬性值修改也可以達到過濾重試次數的限制。
ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED
附:建立profile的SQL:
create profile test limit;