Oracle表空间和用户管理
文章目录
一、表空间管理
1、创建表
创建一个自动增长表空间tbs_work,数据文件名为worktbs01.dbf,且位于‘’,大小自动扩展到10M
SQL> create tablespace tbs_work
datafile '/u01/app/oracle/oradata/orcl/worktbs01.dbf'
size 10M autoextend on;
表空间已创建。
2、调整表空间大小
1、更改数据文件的大小
SQL> alter database datafile //修改数据
'/u01/app/oracle/oradata/orcl/worktbs01.dbf' //数据文件路径
resize 80M; //更改数据文件大小为80M
数据库已更改。
2、向表空间内添加数据文件
SQL> alter tablespace tbs_work //修改表空间tbs_work
add datafile '/u01/app/oracle/oradata/orcl/worktbs02.dbf' //添加数据文件worktbs02.dbf
size 20M autoextend on; //大小自动扩展到20M
表空间已更改。
3、改变表空间的读写状态
SQL> alter tablespace tbs_work read only; //使表空间只读
表空间已更改。
SQL> alter tablespace tbs_work read write; //使表空间可读写
表空间已更改。
4、删除表空间
SQL> drop tablespace tbs_work including contents; //删除表空间
表空间已删除。
二、CDB与PDB的基本操作
1、连接CDB以及相关的查询
SQL> show con_name //查询当前所在的容器
CON_NAME
------------------------------
CDB$ROOT //代表当前在CDB下面
SQL> show pdbs; //查询数据库的所有容器
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 ORCLPDB MOUNTED //状态为mounted(并没有open)
SQL> alter pluggable database orclpdb open; //CDB下修改可插拔库orclpdb为打开状态
插接式数据库已变更。
SQL> alter session set container=orclpdb; //在CDB下切换会话到PDB中
会话已更改。
SQL> show con_name //查看当前位置已经位于ORCLPDB中
CON_NAME
------------------------------
ORCLPDB
2、从CDB切换到PDB以及相关操作
SQL> shutdown immediate //在PDB中关闭可插拔数据库
插接式数据库已关闭。
SQL> startup //在PDB中打开可插拔数据库
插接式数据库已打开。
SQL> alter session set container=cdb$root; //切换会话到CDB中
会话已更改。
SQL> show con_name //查看当前位置
CON_NAME
------------------------------
CDB$ROOT
三、用户管理
SQL> create user c##zhangsan //创建zhangsan的用户(在PDB中创建用户(不需要加c##))
identified by pwd123 //密码
default tablespace tbs_work //默认表空间
temporary tablespace temp //临时表空间
quota unlimited on tbs_work //对默认表空间使用没有限制
password expire; //第一次登录需要改密码
用户已创建。
SQL> alter user c##zhangsan identified by 123456; //修改用户的密码
用户已更改。
SQL> drop user c##zhangsan cascade; //删除c##zhangsan用户
用户已删除。
四、数据库权限管理
SQL> grant connect,resource to c##zhangsan; //授予c##zhangsan用户的connect和resource两角色
授权成功。
SQL> conn c##zhangsan/123456 //验证权限
已连接。
SQL> create table teacher(id int,name varchar(10));
表已创建。
SQL> insert into teacher values (1,'tom');
已创建 1 行。
SQL> select * from teacher;
ID NAME
---------- ------------------------------
1 tom
SQL> revoke connect,resource from c##zhangsan //撤销c##zhangsan用户的权限
撤销成功。