ORACLE 12C下创建表空间和新用户

时间:2021-03-19 21:38:18

首先是关于ORACLE 12C的新特性,这部分内容转载自https://www.cnblogs.com/kerrycode/p/3386917.html,如有转载限制,请联系我

 Oracle 12C引入了CDB与PDB的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。CDB全称为Container Database,中文翻译为数据库容器,PDB全称为Pluggable Database,即可插拔数据库。在ORACLE 12C之前,实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。而实例与数据库不可能是一对多的关系。当进入ORACLE 12C后,实例与数据库可以是一对多的关系。下面是官方文档关于CDB与PDB的关系图。

ORACLE 12C下创建表空间和新用户


这里只对这个新特性做简短描述,主要是描写两种模式下的不同创建方法

1.首先是查看当前容器,CDB$ROOT表示是CDB容器

show con_name

ORACLE 12C下创建表空间和新用户

ORACLE 12C下创建表空间和新用户

2.下面我们就在CDB容器中直接创建表空间

注意CDB容器中创建表空间,

create tablespace CDBTEST datafile 'D:/app/lenovo/virtual/oradata/orcl/CDB_TBSPACE.dbf' size 1500M autoextend on next 50m maxsize unlimited;

ORACLE 12C下创建表空间和新用户

3.创建新用户,注意CDB容器中创建一个通用用户,用户名必须以C##或者c##开头,因为CDB中默认创建的是common user

如果想要创建本地用户,则要在PDB容器中创建,下面会说如何切换到PDB容器

create user C##test identified by 123456;    //其中C##test为用户名,123456为密码

ORACLE 12C下创建表空间和新用户


4.给新用户授权

grant create session to C##test;  
grant create table to   C##test;  
grant create tablespace to   C##test;  
grant create view to   C##test;

ORACLE 12C下创建表空间和新用户

5.授予用户使用表空间的权限

alter user C##test quota unlimited on CDBTEST

ORACLE 12C下创建表空间和新用户

至此就可以用这个用户使用新创建的表空间了


6.如果想要创建本地用户,需要切换到PDB容器,首先查看当前CDB容器中包含的PDB容器

select con_id,dbid,guid,name,open_mode from v$pdbs;


CON_ID           DBID                                   GUID                                              NAME                     OPEN_MODE

 2                  530000825      C78D5E8D63184B5F91529A34D2261A30      PDB$SEED                READ ONLY

 3                  2277952447    95FAD312FCEF42A29188893F08230324        ORCLPDB                 MOUNTED

可以看到当前容器中有一个PDB容器ORCLPDB,我们可以使用它来创建本地用户


7.切换至查到的某个PDB容器(上面查到的是ORCLPDB)

注意使用这个命令需要的sysdba级别的权限,否则无法执行

alter session set container=ORCLPDB;     

ORACLE 12C下创建表空间和新用户


8.切换到PDB容器就可以创建本地用户了

create user test identified by 123456;

ORACLE 12C下创建表空间和新用户

详情见我的另一篇博客http://blog.csdn.net/aaronmer/article/details/78727388


9.如果要切换回CDB容器只需重复第7步的命令,将容器名换为CDB容器的名字即可,一个CDB只有一个根

 alter session set container=CDB$ROOT;   

ORACLE 12C下创建表空间和新用户

个人能力有限,如有谬误,请不吝赐教