How can I set account to EXPIRED(GRACE)?
Marian_Dec 16 2003 — edited Dec 16 2003Hello,
We have database 9i, but our clients are old Forms 4.5 using SQLNet2 and it isnt't able to handle expired passwords. Account status EXPIRED(GRACE) solve my problem, but Oracle doesn't have any commands for it.
Therefore I have to manually update table user$, column ptime and user status after next logon will be EXPIRED(GRACE). But it is very interesting for me that is working only after restart database.
Could anybody explain it? Why I must restart database?
Should I update something else?
Here is detailed example from SQLPLus:
------------------------------------------------------
SQL> conn / as sysdba
Connected.
SQL> create profile test_prof limit
2 password_life_time 30
3 password_grace_time 10;
Profile created.
SQL> create user test_user identified by qwerty profile test_prof;
User created.
SQL> grant create session to test_user;
Grant succeeded.
SQL> update user$ set ptime=sysdate-500 where name='TEST_USER';
1 row updated.
SQL> commit;
Commit complete.
SQL> conn test_user/qwerty
Connected. ## NO WARNING, WHY ????
SQL> conn / as sysdba
Connected.
SQL> startup force
ORACLE instance started.
Total System Global Area 210837176 bytes
Fixed Size 454328 bytes
Variable Size 142606336 bytes
Database Buffers 67108864 bytes
Redo Buffers 667648 bytes
Database mounted.
Database opened.
SQL> conn test_user/qwerty
ERROR:
ORA-28002: the password will expire within 10 days
Connected.
SQL> spool off
---------------------------------------------------
Marian