一、当前ORACLE用户的状态可查看视图DBA_USERS;一般情况下在使用的正常用户均处于OPEN状态。
SQL> select username,account_status from dba_users;USERNAME ACCOUNT_STATUS--------------------- ------------------MGMT_VIEW OPENSYS OPENSYSTEM OPENDBSNMP OPENSYSMAN OPENDEMO OPENOUTLN EXPIRED & LOCKEDMDSYS EXPIRED & LOCKEDORDSYS EXPIRED & LOCKEDANONYMOUS EXPIRED & LOCKEDEXFSYS EXPIRED & LOCKEDWMSYS EXPIRED & LOCKEDXDB EXPIRED & LOCKEDORDPLUGINS EXPIRED & LOCKEDSI_INFORMTN_SCHEMA EXPIRED & LOCKEDDIP EXPIRED & LOCKEDORACLE_OCM EXPIRED & LOCKEDTSMSYS EXPIRED & LOCKED
二、ORACLE数据库用户有多种状态,可查看视图USER_ASTATUS_MAP。
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 <password> account unlock;
四、锁定的两种状态[LOCKED和LOCKED(TIMED)]和密码过期的两种状态[EXPIRED和EXPIRED(GRACE)]之间任意组合即2×2=4,因此有四种组合状态。