Error ORA-65048 when changing user password in container database (CDB)

Error ORA-65048 when changing user password in container database (CDB)

When trying to change the password for a user ended up with error ORA-65048. This is a 12R1 instance:


$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Thu Jun 19 07:15:51 2020

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

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Advanced Analytics and Real Application Testing options

SQL> alter user "C##USRMASTER" identified by values password container=all;

ERROR at line 1:
ORA-65048: error encountered when processing the current DDL statement in pluggable database HPDBSERV
ORA-01918: user 'C##USRMASTER' does not exist

The PDB HPDBSERV was created without the USERS tablespace which prevent the PDB to be synchronized with the parent container. The pdb_plug_in_violations contained the following message:


'CREATE USER C##USRMASTER
IDENTIFIED BY * DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
PROFILE DEFAULT
ACCOUNT UNLOCK container = all'

I have fixed the issue by using the following solution:

1. Connect to the container with the missing tablespace:


SQL> alter session set container=HPDBSERV;
Session altered.

SQL> show con_name

CON_NAME
------------------------------
HPDBSERV

2. Create the missing tablespace:


SQL> create tablespace USERS datafile size 8M autoextend on next 2M maxsize 3G;
Tablespace created.

3. Close and reopen the pluggable database:


SQL> alter pluggable database HPDBSERV close;
Pluggable database altered.

SQL> alter pluggable database HPDBSERV open read write;

Pluggable database altered.

4. Change the user password:


SQL> alter user "C##USRMASTER" identified by values password container=all;

User altered.