關於DBA_USERS檢視中ACCOUNT_STATUS 列的各種取值的含義說明

不一樣的天空w發表於2018-03-22
SQL> select * from sys.user_astatus_map;

   STATUS# STATUS
---------- --------------------------------
         0 OPEN
         1 EXPIRED
         2 EXPIRED(GRACE)
         4 LOCKED(TIMED)
         8 LOCKED
         5 EXPIRED & LOCKED(TIMED)
         6 EXPIRED(GRACE) & LOCKED(TIMED)
         9 EXPIRED & LOCKED
        10 EXPIRED(GRACE) & LOCKED

9 rows selected

透過上面的查詢我們可以看到在Oracle中accunt總共有9種不同的狀態,對應dba_users檢視中的account_status欄位。下面我分別就每種狀態的含義和出現的情況做個簡單的說明,以便於今後的系統管理和維護。

 

分析上面的9種狀態不難看出,其實獨立的狀態只有OPEN、EXPIRED、LOCKED、EXPIRED(GRACE)、LOCKED(TIMED) 5種形式。其他4種不過是前面幾種形式的組合而已。

 

OPEN: 這個是大家最常見的,就是表示這個是可用的,沒有任何限制的帳戶

LOCKED:表示這個帳戶被DBA鎖定. 一般透過alter user username account lock(unlock);

EXPIRED:表示該帳戶被設定為口令到期,要求使用者在下次logon的時候修改口令(系統會在該account被設定為expire後的第一次登陸是提示你修改密碼)

EXPIRED(GRACE):當設定了grace以後(第一次成功登入後到口令到期後有多少天時間可改變口令,在這段時間內,帳戶被提醒修改口令並可以正常登陸,account_status顯示為EXPIRED(GRACE).

 

LOCKED(TIMED):這種狀態表示失敗的login次數超過了FAILED_LOGIN_ATTEMPTS,被系統自動鎖定,需要注意的是,在Oracle 10g中,預設的DEFAULT值是10次.

 

剩下的幾種情況就是上面的組合了:
EXPIRED & LOCKED
SQL> alter user study password expire account lock;
使用者已更改。

SQL> select account_status from dba_users where username='STUDY';

ACCOUNT_STATUS
--------------------------------
EXPIRED & LOCKED

SQL>
 

EXPIRED(GRACE) & LOCKED(TIMED)當account_stutus為EXPIRED(GRACE)的時候,使用者又失敗的login次數超過了FAILED_LOGIN_ATTEMPTS,被系統自動鎖定

EXPIRED & LOCKED(TIMED)當設定了account expire後,使用者又失敗的login次數超過了FAILED_LOGIN_ATTEMPTS,被系統自動鎖定

EXPIRED(GRACE) & LOCKED使用者account_status為EXPIRED(GRACE)後,又被DBA 手工鎖定帳戶後的狀態。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31397003/viewspace-2152125/,如需轉載,請註明出處,否則將追究法律責任。

相關文章