CDB容器与PDB容器的出现导致创建新用户时与以前的版有所区别了,具体区别请查看另一篇:https://e2c.net/2019/03/24/67.html
接下来进入正题
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;

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

最后编辑:2019年03月23日 ©著作权归作者所有

发表评论

正在加载 Emoji