Step 1:使用管理员账户或者有dba权限登陆,如system账户

Step2: 执行 SELECT * FROM DBA_USERS  where username like '%TEST%'

其中account_status是状态。

状态可分为两类: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

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)表示用户密码过期状态。

可以使用select * from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_LIFE_TIME';

先查看

修改PROFILE中的PASSWORD_LIFE_TIME实现密码是否过期:alter profile default limit password_life_time unlimited;


密码过期后也可修改PROFILE中的PASSWORD_GRACE_TIME控制使用的天数:alter profile default limit password_grece_time 180;


4) 对于密码过期的用户OPEN:alter user [username] identified by account unlock;

如执行alter user TEST08 identified by password,意思是将test08已过期的账户密码改为password

5) 如果账号被锁住,需要解锁命令

alter user XXXUSER identified by oracle account unlock; 

或者直接 ALTER USER xxuser ACCOUNT UNLOCK;