天天看點

ORA-28000賬戶被鎖和解鎖

今天測試庫有個賬戶的密碼忘了,試了十幾次就開始提示:

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;