sqlplus / as sysdba)-- create unique table space for admin
CREATE TABLESPACE admints DATAFILE '/path/to/admints.dbf' SIZE 20M AUTOEXTEND ON;-- 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;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 existALTER 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发布于 2021-01-18 17:21:55
所有容器都有一个默认的表空间:
SQL> select p1.name, p2.property_name, p2.property_value
from v$containers p1 join cdb_properties p2 on (p1.con_id = p2.con_id)
where property_name = 'DEFAULT_PERMANENT_TABLESPACE' order by 1;
NAME PROPERTY_NAME PROPERTY_VALUE
---------- ------------------------------ --------------------
CDB$ROOT DEFAULT_PERMANENT_TABLESPACE USERS
PDB1 DEFAULT_PERMANENT_TABLESPACE USERS
PDB2 DEFAULT_PERMANENT_TABLESPACE SALES创建用户而不指定任何内容:
SQL> create user c##myadmin identified by password;
User created.
SQL> select p1.name, u.default_tablespace
from v$containers p1 join cdb_users u on (p1.con_id = u.con_id)
where username = 'C##MYADMIN' order by 1;
NAME DEFAULT_TABLESPACE
---------- ------------------------------
CDB$ROOT USERS
PDB1 USERS
PDB2 SALES然后在根容器中更改用户:
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL> alter user c##myadmin default tablespace admints quota unlimited on admints container=current;
User altered.
SQL> select p1.name, u.default_tablespace
from v$containers p1 join cdb_users u on (p1.con_id = u.con_id)
where username = 'C##MYADMIN' order by 1;
NAME DEFAULT_TABLESPACE
---------- ------------------------------
CDB$ROOT ADMINTS
PDB1 USERS
PDB2 SALES
SQL> select c.name, q.tablespace_name, q.max_bytes
from v$containers c join cdb_ts_quotas q on (c.con_id = q.con_id)
where q.username = 'C##MYADMIN';
NAME TABLESPACE_NAME MAX_BYTES
---------- ------------------------------ ----------
CDB$ROOT ADMINTS -1https://dba.stackexchange.com/questions/283492
复制相似问题