Oracle12c数据库CDB用户创建与表空间分配的问题

12c中,增加了可插接数据库的概念,即pdb,允许一个数据库容器(cdb)承载多个可插拔数据库(pdb).cdb全称为containerdatabase,中文翻译为数据库容器,pdb全称为pluggabledatabase,即可插拔数据库.在oracle 12c之前,实例与数据库是一对一或多对一关系(rac):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载.而实例与数据库不可能是一对多的关系.当进入oracle 12c后,实例与数据库可以是一对多的关系.下面是官方文档关于cdb与pdb的关系图.

对于pdb确实给程序员带来了不少好处,不过这也给管理者带来了一些不同.首先,容器数据库创建新用户并分配表空间时必须在没有pdb的情况下进行或pdb与cdb有相同的表空间的时候进行,否则会报错.如果是在pdb与cdb有相同表空间的情况下给cdb用户分配表空间,则会分配cdb的表空间给用户pdb的表空间并不受影响.而且,cdb用户必须以‘c##’为开头,否则创建不了,但是,我按照  的方法去创建了一下,确实创建成功了,同时也给他赋了各种权限,但是在oracle enterprise manager下我看不见我自己创建的角色,在sql-plus窗口下也看不到刚刚创建的用户,登陆的时候只有以dba身份才能登得上去,不知道是不是我自己电脑的问题还是.以下是创建’c##’开头的用户  创建用户c##admin,并未该用户赋予了dba权限,连接.这是在没有pdb的情况下创建用户“c##admin”并分配”users‘表空间.我们再次以system身份连接数据库,然后在容器数据库(cdb)中创建表空间test,注意,这时插接式数据库(pdb)中没有test这个表空间,然后在容器数据库(cdb)创建新的用户c##test并分配test表空间给它作为他的默认表空间.由于在pdborcl中并没有表空间,所以这里报错了. 

----切换到pdb “pdborcl”

sql> alter sessionset container = pdborcl;

会话已更改.

sql> createtablespace test    --创建表空间test

2 datafile "f:\oracledata\test.dbf"

3  size1m autoextend on;

表空间已创建.

--由于现在不论是在cdb好是在pdb中都有了表空间test了,所以创建用户并分配表空

间成功了.

sql> createuser c##test

2 identified by test

3 default tablespace test

4 temporary tablespace temp;

用户已创建.

sql>

更多oracle相关信息见 专题页面

本文永久更新

Oracle12c数据库CDB用户创建与表空间分配的问题由安丰网( www.anfone.net )用户7318525abe分享,感谢转载请注明出处
回顶部 | 首页 | 电脑版 | 举报反馈