引用自:https://www.cnblogs.com/abclife/p/5397969.html
Oracle数据库用户的状态为Expired,此时,该用户是不能访问使用数据库的。处理思路是,将该用户的密码进行重置,为了确保外部应用脚本能正常使用数据库,该用户的重置密码要与原始密码相同,但是,多数情况下,我们并不记得原始密码。
处理方法:
1. SQL> select user#,name,password,astatus from user$ where name ='TEST';
USER# NAME PASSWORD ASTATUS
---------- ------------------------------ ------------------------------ ----------
83 TEST A894844C342502B11 1
2.SQL>alter user test identified by values 'A894844C342502B11';
该用户的状态即恢复为正常open状态。(Oracle11g亲测成功!)
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
9 rows selected.
另外一种方法:直接修改表user$的字段ASTATUS为0,这样用户就变成open状态了。