“ORA-28001: the password has expired” not fixable

…衆ロ難τιáo~ 提交于 2019-12-03 05:50:16

Assuming the Oracle DB (should work for Oracle-XE's SAMPLE as well) is on Unix, ssh-in and :

sqlplus /nolog

SQL> connect / as SYSDBA
Connected.

SQL> SELECT username, account_status FROM dba_users WHERE ACCOUNT_STATUS LIKE '%EXPIRED%';
# ... your locked account should be listed ...

SQL> ALTER USER sample IDENTIFIED BY sample;         
User altered.

SQL> ALTER USER sample ACCOUNT UNLOCK;
User altered.

SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
Profile altered.

SQL> exit

I am 100% sure that my config is correct. I was overwriting all local data with the files from the productive app server. Still no success.

The problem is also this password expiry problem came suddenly while developing, so I am sure that I did not change anything.

However, I logged into the test system and reset the password there. My test system contains like 100 rows, my productive app like 1 million, so I can definitely tell you that I am on the right database.

After resetting the password of the test system, I can log-in again! So this whole story is very strange. Thanks for the support.

Jim

Can you post the results of the following? Also, what version of Oracle are you using? I'm assuming 11G?

select * 
  from dba_users 
 where username = '<yourUserName>'

select p.* 
  from dba_users u
     , dba_profiles p 
 where u.profile = p.profile 
   and u.userName = '<yourUserName>'

I'd be curious to see what profile you're using, and what your settings are.

Even I was facing same problem. Issue got resolved after following these below mentioned steps,

  1. Check to see if any of the accounts are expired

select username, profile, account_status, expiry_date from dba_users;

  1. If no accounts are expired, you can skip to step 7
  2. Dynamically create SQL that will unexpired the expired accounts. You can unexpired the account by resetting the password. NOTE: You will need to substitute {password} for the password you are using for your user.

select 'ALTER USER ' || username || ' identified by {password};' from dba_users where account_status like 'EXPIRED%' and username != 'XS$NULL';

  1. Execute the SQL generated in Step 3
  2. Dynamically create SQL that will unlock the locked accounts.

select 'ALTER USER ' || username || ' account unlock;' from dba_users where account_status like 'LOCKED%' and username != 'XS$NULL';

  1. Execute the SQL generated in Step 5
  2. Modify the profile assigned to the accounts that you don’t want to expire so the PASSWORD_LIFE_TIME is set to UNLIMITED. This will keep them from expiring again. In my case, I needed to update the DEFAULT profile.

alter profile DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED ;

Reference: http://jaredsoablogaz.blogspot.in/2013/04/weblogic-server-not-starting-due-to.html

-Sandeep

1.go to your command line interface. 2. then type sqlplus.

Just connect with SQLPlus and the affected user to your DB. SQLPlus will prompt you to change your password.

DMG

I did faced similar issue with Oracle of password expiry, to resolve this issue when I tried launching PLSQL, it's prompted me with user name /password and I entered the correct one but system throws me with password expiry error along with password reset input . After I reset my password I was able to connect to oracle database.

just execute this query:

ALTER USER user_name IDENTIFIED BY new_user_name ;
ALTER USER user_name IDENTIFIED BY user_name ;

commit;

The easy way, just do it :)

C:\>sqlplus /nolog
SQL> connect / as SYSDBA
SQL> select * from dba_profiles;
SQL> alter profile default limit password_life_time unlimited;
SQL> alter user hse identified by oracle;
SQL> commit;
SQL> exit;
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!