ORA-01017 error indicates user name and password mismatch. It is quite straightforward error. However the situation I encounter is a little bit strange.
1. I create the user with the expire password option.
2. When I login as that user , the oracle would tell me the password expire and needs to change.
Now is the wired part, if I perform the 2nd step on the same host as oracle database, the password change would work just fine. But if I do it on my windows sqlplus client. I would get the below the error.
Here are the steps to reproduce it.
create user PO2
identified by oracle
grant create session to PO2;
Lets connect it from Windows:
Lets do it on Linux
After some Google, it turns out it is because the oracle client incompatibility . The Linux sqlplus client is 184.108.40.206 and my windows is 220.127.116.11.
Let me try it with 18.104.22.168 windows client.
Change the password to expire first.
alter user PO2 password expire;
It does not seems to be the first time oracle has similar issue. In the past, if we are using 10g client connect to 11g db, it would be the similar issue but that is because 11g password is case sensitive by default ( sec_case_sensitive_logon). In this case, it is just the client incompatibility issue.