oracle数据库:数据库对象以及表数据都存储在表空间中,创建用户时可以指定对应的表空间。这样用户可以在各自的表空间中操作数据,互不干扰。

1. 表空间创建

若不清楚表空间对应文件的路径,可以登录系统用户(sys/system)查看已有表空间对应数据文件的路径
select * from dba_data_files;
临时表空间
用作数据库运算过程中的数据存储,或临时表数据存储等。用完之后系统会自动清理。若不创建则使用系统默认的临时表空间TEMP
CREATE TEMPORARY TABLESPACE tempname --表空间名称
TEMPFILE '/oracle/oradata/orcl/temp001.dbf' --文件路径
SIZE 200m --初始大小
AUTOEXTEND ON NEXT 32m --自动扩展每次多少
MAXSIZE 2048m --最大多少(也可以设置为UNLIMITED,则最大为32g)
EXTENT MANAGEMENT LOCAL;
永久性表空间
存储数据库对象,以及表数据。与临时表空间最大的区别是数据永久性,不会被系统自动清空。
CREATE TABLESPACE DB_DATA
DATAFILE '/oracle/oradata/orcl/DB_DATA01.dbf'
SIZE 32m
AUTOEXTEND ON NEXT 32m
MAXSIZE 2048m
EXTENT MANAGEMENT LOCAL;

2. 数据文件新增及修改

为表空间添加数据文件
当表空间对应的数据文件已经增长到上限值(自己设置的上限值,或者32g),此时则需要为该表空间新增一个数据文件。
ALTER TABLESPACE DB_DATA ADD DATAFILE '/oracle/oradata/orcl/DB_DATA02.dbf'
SIZE 50M
AUTOEXTEND ON NEXT 5M
MAXSIZE 100M;
已存在的数据文件属性修改
ALTER DATABASE DATAFILE '/oracle/oradata/orcl/DB_DATA02.dbf'
AUTOEXTEND ON NEXT 5M
MAXSIZE 100M;
已存在的数据文件大小调整
ALTER DATABASE DATAFILE '/oracle/oradata/orcl/DB_DATA02.dbf'
RESIZE 100M;

3. 用户创建

sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限
system用户是管理操作员,权限也很大。具有sysoper角色,没有create database的权限
登录系统用户(sys/system),创建一般用户。用户指定的profile是限制数据库用户使用资源的一种手段
-- 创建用户
create user username --用户名
identified by password --密码
default tablespace DB_DATA --指定永久性表空间
temporary tablespace TEMP --指定临时表空间
profile DEFAULT; --默认的profile

--查看profile的各个参数信息
select * from dba_profiles where profile='DEFAULT';

4. 用户授权

oracle中权限分为系统权限和对象权限。可以直接授权,也可以通过授予角色得到角色的权限。对于表空间默认是无限额的,不建议让用户在其他表空间随意建表。一般授予 connect,resource即可。
--把角色授予用户,该用户也将拥有该角色的权限
grant connect to username; --连接数据库
grant resource to username; --创建数据库实体(表,过程等)
grant dba to username; --创建数据库结构

--针对表空间使用
grant unlimited tablespace to username; --用户可以再其他表空间随意建表,且无限额

--系统权限(此处列举几个)
grant create cluster to username;
grant create procedure to username;
grant create synonym to username;
grant create trigger to username;
grant create view to username;
grant create JOB to username;
grant drop any table to username;

--对象权限(此处列举几个)
grant delete any table to username;
grant update any table to username;
grant insert any table to username;
grant select any table to username;
5、删除用户

删除用户时,经常会碰到有人正在连接,无法删除。需要登录系统用户(sys/system)批量强制关闭连接。
--执行查询出来的内容即可
select 'alter system kill session' '' || sid || ',' || serial# || ''';'
from v$session
where username = 'XXX'; --填写需要删除的用户名
清除连接之后,就可以在sys用户下删除用户了,若用户下已存在对象,则需要带上 cascade,否则执行报错。
drop user XXX cascade;
6、删除表空间
--删除表空间
drop tablespace XXX;
--删除表空间同时删除对应的数据文件
drop tablespace XXX including contents and datafiles;
ps:以上脚本执行顺序:创建表空间-->创建用户。删除用户-->删除表空间。
对于权限,角色,用户的说明,可以参看 https://www.cnblogs.com/mohai/archive/2013/05/10/3071166.html
---------------------
作者:秦时盖聂
来源:CSDN
原文:https://blog.csdn.net/qinshi965273101/article/details/78988698
版权声明:本文为博主原创文章,转载请附上博文链接!

oracle 表空间创建和删除的更多相关文章

  1. oracle表空间创建及管理

    一.数据文件和数据库逻辑存储结构: 一个表空间包含一个或多个数据文件,一个表空间包含一个或多个段,一个段包含一个或多个区,一个区包含一个或多个连续的数据库块,一个数据库块包含一个或多个操作系统块.段是 ...

  2. postgresql 表空间创建、删除

    表空间:字面上理解就是表存储的物理空间,其实包括数据库的表.索引.序列等. 可以将表空间创建在服务器的不同分区,这样做的好处有: 一.如果初始化集群所在分区已经用光,可以方便的其他分区上创建表空间已达 ...

  3. <<< Oracle表空间创建、修改、删除基本操作

    ORACLE 中,表空间是数据管理的基本方法,所有用户的对象要存放在表空间中,也就是用户有空间的使用权,才能创建用户对象 create tablespace myts  //建立表空间,名为mytsd ...

  4. oracle表空间创建

    /*分为四步 *//*第1步:创建临时表空间  */create temporary tablespace user_temp  tempfile 'D:\oracle\oradata\Oracle9 ...

  5. oracle 表空间/用户 增加删除

    create temporary tablespace user_temp tempfile 'C:\dmp\user_temp.dbf' size 50m autoextend on next 50 ...

  6. Oracle 创建表空间及用户授权、dmp数据导入、表空间、用户删除

    1.创建表空间 // 创建表空间 物理位置为'C:\app\admin\oradata\NETHRA\NETHRA.DBF',初始大小100M,当空间不足时自动扩展步长为10M create tabl ...

  7. 创建表空间tablespace,删除

    在plsql工具中执行以下语句,可建立Oracle表空间. /*分为四步 *//*第1步:创建临时表空间  */create temporary tablespace yuhang_temp temp ...

  8. linux系统下创建oracle表空间和用户权限查询

    创建用户和表空间: 1.登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切换成oracle用户) 2.以sysdba方式来打开sqlplus,命令 ...

  9. 【Oracle 】tablespace 表空间创建和管理

    1.表空间的概述 1. 表空间是数据库的逻辑组成部分. 2. 从物理上讲,数据库数据存放在数据文件中: 3. 从逻辑上讲,数据库是存放在表空间中,表空间由一个或者多个数据文件组成. 2.oracle的 ...

随机推荐

  1. 《DSP using MATLAB》Problem 7.6

    代码: 子函数ampl_res function [Hr,w,P,L] = ampl_res(h); % % function [Hr,w,P,L] = Ampl_res(h) % Computes ...

  2. java Scanner中next和nextLine()区别

    next(): 1.一定要读取到有效字符后才可以结束输入. 2.对输入有效字符之前遇到的空白,next() 方法会自动将其去掉. 3.只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符. ne ...

  3. Jekins学习

    1.Windows  安装入门   https://blog.csdn.net/u011541946/article/details/78003772 PS:坑1,https问题 坑2,offline ...

  4. POI导出Execl文件,使JAVA虚拟机OOM

    由于在项目中使用POI导出execl,导致JAVA虚拟机OOM,采用以下方式解决问题: 原先方式: g_wb = new XSSFWorkbook(sourceFile.getInputStream( ...

  5. java 实现excel 导出功能

    实现功能:java导出excel表 1.jsp代码 <form id="zhanwForm" action="<%=path%>/conferences ...

  6. python selenium 定制启动Chrome的选项注意事项(十九)

    自动化测试的时候为了避免每个case均需要登录的操作,所以把登录后的cookie信息保存下来,在有效期内使用cookie的方式实现登录操作,为了避免展现太多的登录操作,需要通过设置浏览器的option ...

  7. 根据CPU核心数确定线程池并发线程数

    一.抛出问题 关于如何计算并发线程数,一般分两派,来自两本书,且都是好书,到底哪个是对的?问题追踪后,整理如下: 第一派:<Java Concurrency in Practice>即&l ...

  8. NotePad++ 配置Python工作环境

    下载地址:https://notepad-plus-plus.org/ Current Version: 7.5.3 sss 显示空格和指标符 为什么建议这么作?因为判断Python语句是否在同一层次 ...

  9. mmap映射区和shm共享内存的区别总结

    [转载]原文链接:https://blog.csdn.net/hj605635529/article/details/73163513 linux中的两种共享内存.一种是我们的IPC通信System ...

  10. SyntaxError: 'ascii' codec can't decode byte 0xe4 in position 7: ordinal not in range(128)

    问题描述: SyntaxError: 'ascii' codec can't decode byte 0xe4 in position 7: ordinal not in range(128) 解决方 ...