I don’t know but best to have one.
With multi-tenant database, I would use OMF to keep it simple and to avoid having to remember about FILE_NAME_CONVERT.
When creating PDB, there may be specification for ADMIN USER as show below:
CREATE PLUGGABLE DATABASE april ADMIN USER april_admin IDENTIFIED BY oracle;
Here are some examples I have come across (Names and Blogs are not provided to protect the innocents):
create pluggable database PDB1 admin user pdb1_admin CREATE PLUGGABLE DATABASE TESTPDB ADMIN USER TESTADMIN CREATE PLUGGABLE DATABASE devpdb2 ADMIN USER pdb2dba CREATE PLUGGABLE DATABASE mypdb ADMIN USER pdbadmin CREATE PLUGGABLE DATABASE pdb3 ADMIN USER pdb_admadmin user App_Admin
It’s no big deal, right? It’s always possible to dig for it.
Just playing around.
CDB$ROOT:(SYS@tmnt):PRIMARY> @/media/sf_working/sql/cdb_tbs.sql
CON_ID NAME TABLESPACE_NAME FILE_NAME ONLINE_STATUS
------- -------- -------------------- ------------------------------------------------------------------------------------------ -------------
1 CDB$ROOT SYSAUX /oradata/TMNT_A/datafile/o1_mf_sysaux_crx20pot_.dbf ONLINE
1 CDB$ROOT UNDOTBS1 /oradata/TMNT_A/datafile/o1_mf_undotbs1_crx20ssy_.dbf ONLINE
1 CDB$ROOT USERS /oradata/TMNT_A/datafile/o1_mf_users_crx20tq8_.dbf ONLINE
1 CDB$ROOT SYSTEM /oradata/TMNT_A/datafile/o1_mf_system_crx20gsp_.dbf SYSTEM
2 PDB$SEED
3 APRIL SYSAUX /oradata/TMNT_A/380455732D1B1EFFE0530100007F18AB/datafile/o1_mf_sysaux_crx522d1_.dbf ONLINE
3 APRIL USERS /oradata/TMNT_A/380455732D1B1EFFE0530100007F18AB/datafile/o1_mf_users_crx522d2_.dbf ONLINE
3 APRIL SYSTEM /oradata/TMNT_A/380455732D1B1EFFE0530100007F18AB/datafile/o1_mf_system_crx522cr_.dbf SYSTEM
8 rows selected.
CDB$ROOT:(SYS@tmnt):PRIMARY> @/media/sf_working/sql/cdb_role_privs.sql
GRANTEE GRANTED_ROLE
-------------------- --------------------
C##GGS_ADMIN CDB_DBA
C##GGS_ADMIN CDB_DBA
DBSNMP CDB_DBA
DBSNMP CDB_DBA
SYS CDB_DBA
SYS CDB_DBA
C##GGS_ADMIN DBA
C##GGS_ADMIN DBA
MDINH DBA
SYS DBA
SYS DBA
SYSTEM DBA
SYSTEM DBA
APRIL_ADMIN PDB_DBA
C##GGS_ADMIN PDB_DBA
C##GGS_ADMIN PDB_DBA
SYS PDB_DBA
SYS PDB_DBA
DBA XDBADMIN
DBA XDBADMIN
SYS XDBADMIN
SYS XDBADMIN
22 rows selected.
CDB$ROOT:(SYS@tmnt):PRIMARY> CREATE PLUGGABLE DATABASE donnie FROM april;
Pluggable database created.
CDB$ROOT:(SYS@tmnt):PRIMARY> @/media/sf_working/sql/cdb_tbs.sql
CON_ID NAME TABLESPACE_NAME FILE_NAME ONLINE_STATUS
------- -------- -------------------- ------------------------------------------------------------------------------------------ -------------
1 CDB$ROOT SYSAUX /oradata/TMNT_A/datafile/o1_mf_sysaux_crx20pot_.dbf ONLINE
1 CDB$ROOT UNDOTBS1 /oradata/TMNT_A/datafile/o1_mf_undotbs1_crx20ssy_.dbf ONLINE
1 CDB$ROOT USERS /oradata/TMNT_A/datafile/o1_mf_users_crx20tq8_.dbf ONLINE
1 CDB$ROOT SYSTEM /oradata/TMNT_A/datafile/o1_mf_system_crx20gsp_.dbf SYSTEM
2 PDB$SEED
3 APRIL SYSAUX /oradata/TMNT_A/380455732D1B1EFFE0530100007F18AB/datafile/o1_mf_sysaux_crx522d1_.dbf ONLINE
3 APRIL USERS /oradata/TMNT_A/380455732D1B1EFFE0530100007F18AB/datafile/o1_mf_users_crx522d2_.dbf ONLINE
3 APRIL SYSTEM /oradata/TMNT_A/380455732D1B1EFFE0530100007F18AB/datafile/o1_mf_system_crx522cr_.dbf SYSTEM
4 DONNIE
9 rows selected.
Where are the tablespaces and datafiles for DONNIE?
CDB$ROOT:(SYS@tmnt):PRIMARY> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 APRIL READ WRITE NO
4 DONNIE MOUNTED
CDB$ROOT:(SYS@tmnt):PRIMARY> alter pluggable database donnie open;
Pluggable database altered.
CDB$ROOT:(SYS@tmnt):PRIMARY> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 APRIL READ WRITE NO
4 DONNIE READ WRITE NO
CDB$ROOT:(SYS@tmnt):PRIMARY> @/media/sf_working/sql/cdb_tbs.sql
CON_ID NAME TABLESPACE_NAME FILE_NAME ONLINE_STATUS
------- -------- -------------------- ------------------------------------------------------------------------------------------ -------------
1 CDB$ROOT SYSAUX /oradata/TMNT_A/datafile/o1_mf_sysaux_crx20pot_.dbf ONLINE
1 CDB$ROOT USERS /oradata/TMNT_A/datafile/o1_mf_users_crx20tq8_.dbf ONLINE
1 CDB$ROOT UNDOTBS1 /oradata/TMNT_A/datafile/o1_mf_undotbs1_crx20ssy_.dbf ONLINE
1 CDB$ROOT SYSTEM /oradata/TMNT_A/datafile/o1_mf_system_crx20gsp_.dbf SYSTEM
2 PDB$SEED
3 APRIL SYSAUX /oradata/TMNT_A/380455732D1B1EFFE0530100007F18AB/datafile/o1_mf_sysaux_crx522d1_.dbf ONLINE
3 APRIL USERS /oradata/TMNT_A/380455732D1B1EFFE0530100007F18AB/datafile/o1_mf_users_crx522d2_.dbf ONLINE
3 APRIL SYSTEM /oradata/TMNT_A/380455732D1B1EFFE0530100007F18AB/datafile/o1_mf_system_crx522cr_.dbf SYSTEM
4 DONNIE SYSAUX /oradata/TMNT_A/38DDD14641845D0EE0530100007F0289/datafile/o1_mf_sysaux_csso885x_.dbf ONLINE
4 DONNIE USERS /oradata/TMNT_A/38DDD14641845D0EE0530100007F0289/datafile/o1_mf_users_csso885y_.dbf ONLINE
4 DONNIE SYSTEM /oradata/TMNT_A/38DDD14641845D0EE0530100007F0289/datafile/o1_mf_system_csso885k_.dbf SYSTEM
11 rows selected.
PDB DONNIE does not have ADMIN USER.
CDB$ROOT:(SYS@tmnt):PRIMARY> @/media/sf_working/sql/cdb_role_privs.sql
GRANTEE GRANTED_ROLE
-------------------- --------------------
C##GGS_ADMIN CDB_DBA
C##GGS_ADMIN CDB_DBA
C##GGS_ADMIN CDB_DBA
DBSNMP CDB_DBA
DBSNMP CDB_DBA
DBSNMP CDB_DBA
SYS CDB_DBA
SYS CDB_DBA
SYS CDB_DBA
C##GGS_ADMIN DBA
C##GGS_ADMIN DBA
C##GGS_ADMIN DBA
MDINH DBA
MDINH DBA
SYS DBA
SYS DBA
SYS DBA
SYSTEM DBA
SYSTEM DBA
SYSTEM DBA
APRIL_ADMIN PDB_DBA
APRIL_ADMIN PDB_DBA
C##GGS_ADMIN PDB_DBA
C##GGS_ADMIN PDB_DBA
C##GGS_ADMIN PDB_DBA
SYS PDB_DBA
SYS PDB_DBA
SYS PDB_DBA
DBA XDBADMIN
DBA XDBADMIN
DBA XDBADMIN
SYS XDBADMIN
SYS XDBADMIN
SYS XDBADMIN
34 rows selected.
CDB$ROOT:(SYS@tmnt):PRIMARY>
UPDATED: Looks like APRIL_ADMIN is for 2 different PDB's. Now that's confusing.
CDB$ROOT:(SYS@tmnt):PRIMARY> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 APRIL READ WRITE NO
4 DONNIE READ WRITE NO
CDB$ROOT:(SYS@tmnt):PRIMARY> @/media/sf_working/sql/cdb_role_privs.sql
GRANTEE GRANTED_ROLE CON_ID
-------------------- -------------------- -------
C##GGS_ADMIN CDB_DBA 1
C##GGS_ADMIN CDB_DBA 3
C##GGS_ADMIN CDB_DBA 4
DBSNMP CDB_DBA 1
DBSNMP CDB_DBA 3
DBSNMP CDB_DBA 4
SYS CDB_DBA 1
SYS CDB_DBA 3
SYS CDB_DBA 4
C##GGS_ADMIN DBA 1
C##GGS_ADMIN DBA 3
C##GGS_ADMIN DBA 4
MDINH DBA 3
MDINH DBA 4
SYS DBA 1
SYS DBA 3
SYS DBA 4
SYSTEM DBA 1
SYSTEM DBA 3
SYSTEM DBA 4
APRIL_ADMIN PDB_DBA 3
APRIL_ADMIN PDB_DBA 4
C##GGS_ADMIN PDB_DBA 1
C##GGS_ADMIN PDB_DBA 3
C##GGS_ADMIN PDB_DBA 4
SYS PDB_DBA 1
SYS PDB_DBA 3
SYS PDB_DBA 4
DBA XDBADMIN 1
DBA XDBADMIN 3
DBA XDBADMIN 4
SYS XDBADMIN 1
SYS XDBADMIN 3
SYS XDBADMIN 4
34 rows selected.
CDB$ROOT:(SYS@tmnt):PRIMARY>