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

本文介绍如何在Oracle12c中创建可插拔数据库(PDB)并配置相关表空间与用户。涵盖PDB概念、创建过程及通过命令行与EM界面的操作步骤。

创建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)
    )
  )

 

 

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

 

 

 

 

 

 

 

好的,下面是创建表空间用户、目录及授权的详细步骤: 1. 创建表空间 在Oracle 12C中,创建表空间可以使用如下语句: ```sql CREATE TABLESPACE 表空间名 DATAFILE '数据文件路径' SIZE 初始大小 AUTOEXTEND ON NEXT 扩展大小 MAXSIZE 最大大小; ``` 例如,创建名为test_ts的表空间,数据文件路径为E:\oracle\oradata\XE\test_ts.dbf,初始大小为100M,扩展大小为10M,最大大小为500M,可以使用如下语句: ```sql CREATE TABLESPACE test_ts DATAFILE 'E:\oracle\oradata\XE\test_ts.dbf' SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE 500M; ``` 2. 创建用户 在Oracle 12C中,创建用户可以使用如下语句: ```sql CREATE USER 用户名 IDENTIFIED BY 密码 DEFAULT TABLESPACE 表空间名 QUOTA 空间限额 ON 表空间名; ``` 例如,创建名为test_user的用户,密码为123456,使用test_ts表空间,并给予该用户在test_ts表空间中使用100M的空间限额,可以使用如下语句: ```sql CREATE USER test_user IDENTIFIED BY 123456 DEFAULT TABLESPACE test_ts QUOTA 100M ON test_ts; ``` 3. 创建目录 在Oracle 12C中,创建目录可以使用如下语句: ```sql CREATE DIRECTORY 目录名 AS '目录路径'; ``` 例如,创建名为test_dir的目录,路径为E:\oracle\test_dir,可以使用如下语句: ```sql CREATE DIRECTORY test_dir AS 'E:\oracle\test_dir'; ``` 4. 授权 在Oracle 12C中,授权可以使用如下语句: ```sql GRANT 权限列表 TO 用户名; ``` 例如,给test_user用户授权可以使用test_dir目录下的所有文件,可以使用如下语句: ```sql GRANT READ, WRITE ON DIRECTORY test_dir TO test_user; ``` 以上就是Oracle 12C创建表空间用户、目录及授权的详细步骤,希望能够对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值