数据库12C创建PDB表空间用户及授权(DEMO)

创建PDB表空间与用户(不创建通用用户)

Oracle12c中,增加了可插接数据库的概念,即PDB,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。CDB全称为ContainerDatabase,中文翻译为数据库容器,PDB全称为PluggableDatabase,即可插拔数据库。在ORACLE 12C之前,实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。而实例与数据库不可能是一对多的关系。当进入ORACLE 12C后,实例与数据库可以是一对多的关系。下面是官方文档关于CDB与PDB的关系图。




 

common user 和local user是和oracle 12c的新特性pluggable database(PDB)有关。在PDB中创建的用户就是local user。从上图可以看出,common user必须以大写或小写的c##开头。下面是官方文档User的关系图。



 

步骤:

1、安装,基本默认,默认安装会默认装一个PDB(orclpdb),

2、安装完之后登录,登录之后默认是CDB,创建CDB的表空间,(我试过如果单纯在PDB下创建表空间的话,之后创建用户无法指定表空间,意思是,CDB与PDB必须有相同名称的表空,才可以指定表空间,不然默认用的是TEMP与USERS);

>sqlplus sys/password as sysdba

SQL> show con_name;

SQL> select con_id,dbid,name,open_mode from v$pdbs;
 --查看目前有的PDB容器

--创建CDB临时表空间(如果使用默认的临时表空间TEMP可以忽略这步)
SQL> create temporary tablespace wmstest_temp
tempfile 'C:\app\Administrator\virtual\oradata\wmstest_temp.dbf' 
size 128m 
autoextend on 
next 128m maxsize 20480m 
extent management local; 
 

--创建CDB数据表空间(如果使用默认的表空间USERS可以忽略这步)
SQL>create tablespace wmstest_data
logging 
datafile 'C:\app\Administrator\virtual\oradata\wmstest_data.dbf' 
size 128m 
autoextend on 
next 128m maxsize 20480m 
extent management local; 

3、创建需要使用的PDB,我不使用默认的PDB,通过Datebase Configuration Assistant 创建一个PDB(wmstestpdb),创建完之后可以使用em界面来创建表空间 用户及授权等。



 

通过em界面可以省事很多



 

4、如果不通过em界面的话,使用命令行的话,需要执行以下步骤

--切换到指定的库,方才创建的PDB是(WMSTESTPDB);
SQL>  alter session set container=WMSTESTPDB;

-- 查看切换之后是否在PDB下,上一步会有显示,这一步纯粹无聊的
SQL> show con_name;
SQL> select con_id,dbid,name,open_mode from v$pdbs;

--如果是刚创建的PDB默认已经打开,不过可以执行startup命令确认下,反正如果已经打开的话也不会重复打开
SQL> startup;


--创建临时表空间(与CDB同名,不同tempfile, 的文件即可),其实用EM界面还有更多可选参数
SQL> create temporary tablespace wmstest_temp
tempfile 'C:\app\Administrator\virtual\oradata\wmstestpdb_temp.dbf' 
size 128m 
autoextend on 
next 128m maxsize 20480m 
extent management local; 

--创建数据表空间(与CDB同名,不同tempfile, 的文件即可)
SQL> create tablespace wmstest_data
logging 
datafile 'C:\app\Administrator\virtual\oradata\wmstestpdb_data.dbf' 
size 128m 
autoextend on 
next 128m maxsize 20480m 
extent management local; 

-- 1 此时是在PDB下哦,创建用户并制定表空间
-- WMSTEST_DATA ,WMSTEST_TEMP必须同时存在CDB与PDB中哦,不然会报错哦
SQL> create user wmstest identified by wms123 default tablespace WMSTEST_DATA temporary tablespace WMSTEST_TEMP;

-- 2 使用默认的表空间(USERS,TEMP在CDB中默认存在有,并且新建的PDB也是默认存在的)
SQL> create user wmstest identified by wms123 default tablespace USERS temporary tablespace TEMP;

--给用户授予权限,授所有权限
SQL>  grant all to wmstest;

其他的sql

--其他
--删除用户
SQL>  drop user wmstest cascade; 

--删除表空间
SQL> DROP TABLESPACE wmstest_temp INCLUDING CONTENTS AND  DATAFILES;
SQL> DROP TABLESPACE wmstest_data INCLUDING CONTENTS AND  DATAFILES;

-- 查看表空间
SQL> select tablespace_name, file_id, file_name,
   round(bytes/(1024*1024),0) total_space
  from dba_data_files
  order by tablespace_name;

-- 查看用户
SQL> select * from dba_users;

5 、使用PLSQL连接

配置

tnsnames.ora

# wmstest/wms123
wmstestpdb =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = IP  )(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = WMSTESTPDB)
    )
  )

如此可以连接并操作数据库了。

猜你喜欢

转载自colorpanda.iteye.com/blog/2372328