Oracle数据库查看用户状态
一、当前ORACLE用户的状态可查看视图DBA_USERS;一般情况下在使用的正常用户均处于OPEN状态。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
SQL> select username,account_status from dba_users; USERNAME ACCOUNT_STATUS --------------------- ------------------ MGMT_VIEW OPEN SYS OPEN SYSTEM OPEN DBSNMP OPEN SYSMAN OPEN DEMO OPEN OUTLN EXPIRED & LOCKED MDSYS EXPIRED & LOCKED ORDSYS EXPIRED & LOCKED ANONYMOUS EXPIRED & LOCKED EXFSYS EXPIRED & LOCKED WMSYS EXPIRED & LOCKED XDB EXPIRED & LOCKED ORDPLUGINS EXPIRED & LOCKED SI_INFORMTN_SCHEMA EXPIRED & LOCKED DIP EXPIRED & LOCKED ORACLE_OCM EXPIRED & LOCKED TSMSYS EXPIRED & LOCKED |
二、ORACLE数据库用户有多种状态,可查看视图USER_ASTATUS_MAP。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
SQL>select * from 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 |
九种状态可分为两类:1.基本状态;2.组合状态。
前五种是基本状态: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
后四种的组合状态可通过状态号STATUS#获得其状态的两个组合。掌握前五种即可。
三、五种基本状态
五种基本状态可分为三类:1.正常状态;2.锁定状态;3.密码过期状态。
1、OPEN状态表示用户处于正常状态。
2、LOCKED和LOCKED(TIMED)表示用户被锁定状态。
用户被锁定有两种:
一种是DBA显式的通过SQL语句对用户进行锁定;
另一种是被动的锁定,默认情况下如果密码输入错误超过10次。
该限制由PROFILE中的FAILED_LOGIN_ATTEMPTS控制,可查看视图DBA_PROFILES。
1)显式锁定用户LOCKED:alter user [username] account lock;
2)输入10次错误密码后被动锁定LOCKED(TIMED)
3、EXPIRED和EXPIRED(GRACE)表示用户密码过期状态。
修改PROFILE中的PASSWORD_LIFE_TIME实现密码是否过期:alter profile default limit password_life_time unlimited;
密码过期后也可修改PROFILE中的PASSWORD_GRACE_TIME控制使用的天数:alter profile default limit password_grece_time 180;
对于密码过期的用户OPEN:alter user [username] identified by account unlock;
四、锁定的两种状态[LOCKED和LOCKED(TIMED)]和密码过期的两种状态[EXPIRED和EXPIRED(GRACE)]之间任意组合即2×2=4,因此有四种组合状态。