To set up an Oracle Database for development I install the database in a docker container and then modify password policies in the default user profile as follows:
ALTER PROFILE DEFAULT LIMIT COMPOSITE_LIMIT UNLIMITED PASSWORD_LIFE_TIME UNLIMITED PASSWORD_REUSE_TIME UNLIMITED PASSWORD_REUSE_MAX UNLIMITED PASSWORD_VERIFY_FUNCTION NULL PASSWORD_LOCK_TIME UNLIMITED PASSWORD_GRACE_TIME UNLIMITED FAILED_LOGIN_ATTEMPTS UNLIMITED;
this prevents passwords from expiring and users from being locked.
If nevertheless a user’s password is expired and the user is locked, I unlock it with the following query:
ALTER USER <user> IDENTIFIED BY <password>;
For a common user, for example SYSTEM:
ALTER SESSION SET CONTAINER=CDB$ROOT; ALTER USER SYSTEM IDENTIFIED BY <password> CONTAINER=ALL;
Determining what profile a user belongs to:
select profile from DBA_USERS where username = '<USER>';
Changing user’s profile to DEFAULT:
ALTER USER <user> PROFILE DEFAULT;