关于DBA_USERS视图中ACCOUNT_STATUS列的各种取值的含义说明

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字段。下面我分别就每种状态的含义和出现的情况做个简单的说明,以便于今后的系统管理和维护。

10年积累的网站设计、成都做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有巴彦免费网站建设让你可以放心的选择与我们合作。

分析上面的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 手工锁定帐户后的状态。



本文名称:关于DBA_USERS视图中ACCOUNT_STATUS列的各种取值的含义说明
本文URL:http://azwzsj.com/article/iesjcg.html