- I can create a CDB tablespace like this: (all using:
sqlplus / as sysdba
)
-- create unique table space for admin
CREATE TABLESPACE admints DATAFILE '/path/to/admints.dbf' SIZE 20M AUTOEXTEND ON;
- I can create a CDB user with a default tablespace "system" since all PDBs have a "system" tablespace:
-- create admin user on CDB (the defaut tablespace is "system")
CREATE USER C##admin IDENTIFIED BY P@ssw0rd DEFAULT TABLESPACE system QUOTA UNLIMITED ON system ACCOUNT UNLOCK;
- I can't create my user with default tablespace "admints":
CREATE USER C##admin IDENTIFIED BY P@ssw0rd DEFAULT TABLESPACE admints QUOTA UNLIMITED ON admints ACCOUNT UNLOCK
*
ERROR at line1:
ORA-65048: error encountered when processing the current DDL statement in
pluggable database ORCLPDB
ORA-00959: tablespace 'ADMINTS' does not exist
- And I can't give quota to my created user on my created tablespace since it only on the CDB and didn't been created for each PDB. is that correct?
ALTER USER C##admin quota unlimited on admints unlimited
*
ERROR at line1:
ORA-65048: error encountered when processing the current DDL statement in
pluggable database ORCLPDB
ORA-00959: tablespace 'ADMINTS' does not exist
- The "admits" tablespace has been created once only for the CDB, not for each PDB.
- I want to create the C##admin user's tables on the "admits" tablespace on the CDB and have an unlimited quota on it.
- I want the C#admin to have at least read access on all PDBs, so I can't unload them.
- Is it possible?
Best Answer
All containers have a default tablespace:
Create the user without specifying anything:
Then alter the user in the root container: