Escenario:Estas creando un nuevo PDB en un contenedor de base de datos Oracle en versión 23ai, en una base de datos desplegada como servicio en el OCI.
No tienes inconveniente a la hora de crear el nuevo PDB, pero cuando deseas agregar un "Tablespace" nuevo, te devuelve el error ORA-28361: Master key not yet set.
Esta es la forma en como resolver el problema, siempre y cuando recuerdes la frase que utilizaste para crear la llave de encriptación en el despliegue del servicio.
SQL> connect / as sysdba
Connected.
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 LAB1 READ WRITE NO
SQL> show parameter create
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
create_bitmap_area_size integer 8388608
create_stored_outlines string
db_create_file_dest string /u02/app/oracle/oradata/cdb_x2
m_iad/
db_create_online_log_dest_1 string /u03/app/oracle/redo/
db_create_online_log_dest_2 string
db_create_online_log_dest_3 string
db_create_online_log_dest_4 string
db_create_online_log_dest_5 string
SQL> create pluggable database lab2 admin user admin identified by MY$p*********$2025$;
Pluggable database created.
Elapsed: 00:00:13.68
SQL> alter pluggable database lab2 open;
Pluggable database altered.
Elapsed: 00:00:07.35
SQL> alter pluggable database lab2 save state;
Pluggable database altered.
Elapsed: 00:00:00.05
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 LAB1 READ WRITE NO
4 LAB2 READ WRITE NO
SQL> alter session set container=lab2;
Session altered.
Elapsed: 00:00:00.01
SQL> create user demo identified by MY***********$2025$;
User created.
Elapsed: 00:00:00.18
SQL> grant create session to demo;
Grant succeeded.
Elapsed: 00:00:00.01
SQL> grant dba to demo;
Grant succeeded.
Elapsed: 00:00:00.01
SQL> alter user demo default tablespace users;
alter user demo default tablespace users
*
ERROR at line 1:
ORA-00959: tablespace 'USERS' does not exist
Help: https://docs.oracle.com/error-help/db/ora-00959/
Elapsed: 00:00:00.00
SQL> create tablespace users;
create tablespace users
*
ERROR at line 1:
ORA-28361: Master key not yet set.
Help: https://docs.oracle.com/error-help/db/ora-28361/
Cuando realizas la siguiente consulta, encuentras que en la columna FULLY_BACKED_UP el valor es UNDEFINED.
SQL> SELECT * FROM v$encryption_wallet;
WRL_TYPE WRL_PARAMETER STATUS WALLET_TYPE WALLET_OR KEYSTORE FULLY_BAC CON_ID
---------- -------------------- ---------- -------------------- --------- -------- --------- ----------
FILE OPEN AUTOLOGIN SINGLE UNITED UNDEFINED 4
Elapsed: 00:00:00.01
Solución al error:
SQL> ADMINISTER KEY MANAGEMENT SET KEY USING TAG 'rotate_key' FORCE
KEYSTORE IDENTIFIED BY "V4_dS#3LxZ4bdLxyZ2Y2yCj" WITH BACKUP USING 'backup_key';
keystore altered.
Donde el valor de KEYSTORE IDENTIFIED BY, es la frase que escogiste cuando hiciste el despliegue de la base de datos para el tema de encriptación
Elapsed: 00:00:00.21
SQL> create tablespace users;
Tablespace created.
Elapsed: 00:00:00.97
SQL> col WRL_PARAMETER format a20
SQL> SELECT * FROM v$encryption_wallet;
WRL_TYPE WRL_PARAMETER STATUS WALLET_TYPE WALLET_OR KEYSTORE FULLY_BAC CON_ID
---------- -------------------- ---------- -------------------- --------- -------- --------- ----------
FILE OPEN AUTOLOGIN SINGLE UNITED NO 4
Elapsed: 00:00:00.00
SQL>