首先是关于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的关系图。
这里只对这个新特性做简短描述,主要是描写两种模式下的不同创建方法
1.首先是查看当前容器,CDB$ROOT表示是CDB容器
show con_name
2.下面我们就在CDB容器中直接创建表空间
注意CDB容器中创建表空间,
create tablespace CDBTEST datafile 'D:/app/lenovo/virtual/oradata/orcl/CDB_TBSPACE.dbf' size 1500M autoextend on next 50m maxsize unlimited;
3.创建新用户,注意CDB容器中创建一个通用用户,用户名必须以C##或者c##开头,因为CDB中默认创建的是common user
如果想要创建本地用户,则要在PDB容器中创建,下面会说如何切换到PDB容器
create user C##test identified by 123456; //其中C##test为用户名,123456为密码
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;
5.授予用户使用表空间的权限
alter user C##test quota unlimited on CDBTEST;
至此就可以用这个用户使用新创建的表空间了
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;
8.切换到PDB容器就可以创建本地用户了
create user test identified by 123456;
详情见我的另一篇博客http://blog.csdn.net/aaronmer/article/details/78727388
9.如果要切换回CDB容器只需重复第7步的命令,将容器名换为CDB容器的名字即可,一个CDB只有一个根
alter session set container=CDB$ROOT;
个人能力有限,如有谬误,请不吝赐教