Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

When I connect to my local development database, I get an error saying the password has expired. I've been trying to change it with sqlplus to no avail:

C:\>sqlplus TPMDBO/password@localhost/global

SQL*Plus: Release Production on Wed Nov 6 15:41:02 2013

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

ORA-28001: the password has expired

Changing password for TPMDBO
New password:
Retype new password:
ORA-01017: invalid username/password; logon denied

Password unchanged

I get this error no matter what new password I type in.

My main question is how I can reset this password. However, I'm also curious if there's a way to make the password never expire. This is a local dev database, I really don't care about the security or anything and none of the data on it is important.

share|improve this question

migrated from Nov 7 '13 at 5:38

This question came from our site for professional and enthusiast programmers.

This seems more like a [dba] question than an SO question. Voting to migrate there instead. – Ken White Nov 6 '13 at 23:55
up vote 7 down vote accepted

Log in to your database as a user who has privilege to alter other users (for example, SYS) and issue the following command:

ALTER USER tmpdbo IDENTIFIED BY new_password;

You can change the expiration behaviour. There already was a question about that on stack overflow, check this thread: Make Oracle Password Never Expire

share|improve this answer
So basically you're saying a user does not have the ability to change their own expired password? – Mike Christensen Nov 6 '13 at 23:57
@MikeChristensen If the account is locked, then, as far as I know, a user can't change it then. – Przemyslaw Kruglej Nov 6 '13 at 23:58
Great, thanks! Clever how Oracle asks you for a new password but doesn't actually allow you to change it. I think I've just come to expect this sort of thing from Oracle. – Mike Christensen Nov 7 '13 at 0:01
@MikeChristensen Just to be clear, a user can change his own password, but the account must not be locked (the same way that I have shown in my answer). – Przemyslaw Kruglej Nov 7 '13 at 0:03
@MikeChristensen Furthermore, the Oracle output in your question shows the account is not locked, but expired. So the error message clearly indicates you entered the wrong old password. Not presenting the correct one there, of course you are not allowed to set a new (I would be much worried otherwise). – Izzy Nov 21 '13 at 9:37

Late to the party here but I just ran into this and at least in my case I am fairly certain it is an oracle bug, possibly with compatibility between client versions. I was getting this error connecting to an 11g database using the 12g sql*plus client while another person was able to successfully log in and change the password using the 11g sql*plus client. They always say things are backwards compatible. They aren't always right...

share|improve this answer
Agree, seen this often before, especially with intermixing 10g/11g clients/servers, since password case sensitivity started in 11g. – Joshua Huber Mar 4 '15 at 22:25

log into sqlplus as username:SYSTEM give previous password

new_password:<new password>
retype new password:<new password>
password is set
share|improve this answer
This changes the password for the user SYSTEM, not the user "TPMDBO". – Colin 't Hart Jun 30 '15 at 9:18

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.