一、前言
Oracle 12c 中新增加了可插入数据库的概念,即 PDB(Pluggable Database),允许一个容器数据库 ,即 CDB (Container Database)承载多个可插入数据库 PDB 。CDB 相当于操作系统,调用并管理各个 PDB ,PDB 相当于真正提供业务需求的数据库实例。在 PDB 中创建用户与之前相同,但在 CDB 中创建用户与之前有所不同,下面会详细说明。文章源自浅海拾贝-https://blog.terwergreen.com/oracle12c-creates-table-space-user-2sfkbm.html
默认会安装一个名字为 ORCL
的 pdb。文章源自浅海拾贝-https://blog.terwergreen.com/oracle12c-creates-table-space-user-2sfkbm.html
查看 pdb
~ sqlplus sys/123456 as sysdba
>SQL show pdbs
1)打开 SQL Plus, 以 system 用户登录,注意输入密码后面加入“as sysdba”;文章源自浅海拾贝-https://blog.terwergreen.com/oracle12c-creates-table-space-user-2sfkbm.html
这是如果创建普通用户则会提示“ORA-65096:公用用户名或角色名无效”。文章源自浅海拾贝-https://blog.terwergreen.com/oracle12c-creates-table-space-user-2sfkbm.html
输入文章源自浅海拾贝-https://blog.terwergreen.com/oracle12c-creates-table-space-user-2sfkbm.html
show con_name
可以看出当前容器为 CDB。文章源自浅海拾贝-https://blog.terwergreen.com/oracle12c-creates-table-space-user-2sfkbm.html
2)输入以下代码,启动 PDB 数据库:文章源自浅海拾贝-https://blog.terwergreen.com/oracle12c-creates-table-space-user-2sfkbm.html
alter session set container=ORCL;
-- startup;
二、创建表空间
CDB 与 PDB 之间的表空间是不能相互使用的,需要单独创建文章源自浅海拾贝-https://blog.terwergreen.com/oracle12c-creates-table-space-user-2sfkbm.html
注意:这里需要切换 session, 参考第一步第2小步。文章源自浅海拾贝-https://blog.terwergreen.com/oracle12c-creates-table-space-user-2sfkbm.html
注意目录文章源自浅海拾贝-https://blog.terwergreen.com/oracle12c-creates-table-space-user-2sfkbm.html
cd /opt/oracle/oradata
mkdir ORCLPDB
alter session set container=ORCL;
- 创建临时表空间
-- alter session set container=ORCL;
CREATE TEMPORARY tablespace my_temp tempfile '/opt/oracle/oradata/orclpdb/my_temp.dbf' SIZE 50m autoextend ON NEXT 50m maxsize 20480m extent management LOCAL;
- 创建数据表空间
-- alter session set container=ORCL;
CREATE tablespace my_data logging datafile '/opt/oracle/oradata/orclpdb/my_data.dbf' SIZE 50m autoextend ON NEXT 50m maxsize 20480m extent management LOCAL;
三、创建用户
- 创建用户
-- CDB下创建用户需要加上c##或C##才能创建成功(c##xxx整体是用户名)
CREATE USER c##xxx IDENTIFIED BY 密码
DEFAULT tablespace 数据表空间
TEMPORARY tablespace 临时表空间;
-- PDB 下创建用户按之前的方式就行
CREATE USER xxx IDENTIFIED BY 密码
DEFAULT tablespace 数据表空间
TEMPORARY tablespace 临时表空间;
- 赋予权限
GRANT CONNECT,resource,dba TO terwer;
例子:文章源自浅海拾贝-https://blog.terwergreen.com/oracle12c-creates-table-space-user-2sfkbm.html
-- alter session set container=ORCL;
create user kms15 identified by 123456 default tablespace my_data temporary tablespace my_temp;
grant CONNECT,resource,dba to kms15;
-- alter session set container=ORCL;
create user kms16 identified by 123456 default tablespace my_data temporary tablespace my_temp;
grant CONNECT,resource,dba to kms16;
四、删除表空间、用户
- 删除表空间
-- 删除空的表空间,但是不包含物理文件
DROP tablespace 表空间名称;
-- 删除空表空间,包含物理文件
DROP tablespace 表空间名称 INCLUDING datafiles;
-- 删除非空表空间,但是不包含物理文件
DROP tablespace 表空间名称 INCLUDING contents;
--删除非空表空间,包含物理文件
DROP tablespace 表空间名称 INCLUDING contents AND datafiles;
--如果其他表空间中的表有外键等约束关联到了本表空间中表的字段,需要加上CASCADE CONSTRAINTS
DROP tablespace 表空间名称 INCLUDING contents AND datafiles CASCADE CONSTRAINTS;
- 删除用户
-- 只是删除此用户
DROP USER 用户名;
-- 会删除此用户及此用户关联的所有表和视图
DROP USER 用户名 CASCADE;
文章源自浅海拾贝-https://blog.terwergreen.com/oracle12c-creates-table-space-user-2sfkbm.html - 扫码加我微信
- 验证消息请输入:来自你的博客
- 我的微信公众号
- 微信扫一扫与我交流吧
评论