Oracle表空间与权限的深入讲解


Posted in Oracle onNovember 17, 2021

表空间

表空间是数据库的逻辑划分,一个表空间只能属于一个数据库。所有的数据库对象都存放在指定的表空间中。但主要存放的是表,所以称作表空间。

Oracle中很多优化都是基于表空间的设计理念而实现的,一个数据库可以包含多个表空间,一个表空间只能属于一个数据库。一个表空间包含多个数据文件,一个数据文件只能属于一个表空间。

Oracle 数据库中至于存放一个表空间,即SYSTEM的表空间。

表空间的典型应用

  1. 控制用户所占用的表空间配额
    1. 建立不同的表空间,为其设置最大的存储容量,然后把用户归属于这个表空间。如此的话,这个用户的存储容量,就受到这个表空间大小的限制。
  2. 控制数据库所占用的磁盘空间
  3. 灵活放置表空间,提高数据库的输入输出性能。
    1. 可以将不同类型的数据放置不同的表空间中,比如与湖南省相关的数据文件就放置在湖南省的这个表空间中。北京的就放在北京这个表空间中。
  4. 大表的排序操纵
    1. 针对这种容量比较大的表对象,往往把它放在一个独立的表空间,以提高数据库性能。

默认表空间

系统中默认创建的几个表空间

  1. SYSTEM
    1. 所有的dictionary object都存在SYSTEM表空间里面,存在SYS用户的表,视图,存储过程对象。
  2. SYSAUX
    1. 作为SYSTEM表空间的辅助表空间,减轻SYSTEM表空间负荷。
  3. USERS
    1. 存储用户创建的数据库对象
  4. UNDOTBS
    1. 存储撤销信息的undo表空间。
  5. EXAMPLE
    1. 数据库示例的表空间
  6. TEMP
    1. 临时表空间主要用途是在数据库进行排序运算,管理索引,访问视图等操纵时提供的临时的运算空间,当运算完成之后系统会自动清理。

表空间查询命令

查询所有的表空间

select * from V$tablespace

查看表空间的数据文件

select file_name,tablespace_name from dba_data_files

查看用户的默认表空间

select default_tablespace,temporary_tablespace from dba_users where username='用户名';

查看指定表空间有哪些表

select table_name,tablespace_name from dba_tables where tablespace_name='表空间名称'

创建表空间

create tablespace test_data datafile 'test_data.dbf' size 32M autoextend on next 32M maxsize 2048M extent management local

创建临时表空间

create temporary tablespcae test_temp tempfile 'test_temp.dbf' size 32M autoextend on next 32M maxsize 2048M extent management local

删除表空间

drop tablespace 表空间名 including contents and datafiles

给用户赋予表空间

create user 用户名 identified by 密码 default tablespace 默认表空间 temporary  tablespace 临时表空间

用户与表空间的关系

一个用户可以使用一个或者多个表空间,一个表空间也可以供多个用户使用。

用户和表空间没有隶属关系,表空间是一个用来管理存储数据的逻辑概念,表空间只是和数据文件发生关系,数据文件是物理的,一个表空间可以包含多个数据文件,而一个数据文件只能隶属一个表空间。

查看用户默认表空间

select username,deafult_tablespace from dba_users where username='用户名'

查看当前用户拥有的表

select table_name from user_tables

权限分类

1、系统权限

系统规定用户使用数据库的权限。(系统权限是对用户而言)。系统权限只能由DBA用户授出

最开始就是这两个用户(sys,system)

2、对象权限

某种权限用户对其他用户的表或者视图存取权限。(是针对表或视图而言)

系统权限

允许用户执行特定的数据库动作,如创建表、创建索引、连接实例等。

  1. dba角色: 拥有全部特权,是系统最高权限。
  2. resource角色:拥有resource权限的用户只可以访问数据库对象。
  3. connect角色:拥有connect权限的用户只可以登录Oracle,不可以访问数据库对象

注意:以上都是角色,不算单个权限,算是一群权限的集合。

查看所有系统权限

SELECT * FROM SYSTEM_PRIVILEGE_MAP

系统权限

允许用户操纵一些特定的对象,如读取视图,可更新某些列、执行存储过程等

select, update, insert, alter, index, delete, all …… //all包括所有权限

execute //执行存储过程权限

给用户授权

系统权限

grant 系统权限 to 用户名 [WITH ADMIN OPTION]
grant connect, resource to 用户名;

对象权限

grant 对象权限 on 对象 to 用户  [WITH GRANT OPTION]
grant select, update, insert on product to 用户名;
grant all on product to 用户名;  // all 表示全部对象权限
grant all on product to 用户名;  // public表示是所有的用户

撤销用户权限

撤销系统权限

revoke 系统权限 from 用户;
revoke resource from 用户名;

撤销对象权限

revoke 对象权限 on 对象 from 用户
revoke select, update on product from 用户

角色

角色就是一组权限(privilege),更加方便对权限进行管理,每种角色都用于执行一些特定的管理任务。

  • 创建角色/删除角色
create role 角色名 / drop role 角色名
  • 给角色授权

系统权限: grant 系统权限 to 角色

对象权限: grant 对象权限 on 对象 to 角色

  • 撤消角色权限

revoke 系统权限 from 角色

revoke 对象权限 on 对象 from 角色

查看权限

查看当前用户所有系统权限

select * from user_sys_privs

查看当前用户所属角色

select * from user_role_privs

角色有哪些系统权限

select * from role_sys_privs

角色有哪些对象权限(sys用户下)

select * from role_tab_privs

用户有哪些对象权限

select * from user_tab_privs

总结

到此这篇关于Oracle表空间与权限的文章就介绍到这了,更多相关Oracle表空间与权限内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Oracle 相关文章推荐
oracle DGMGRL ORA-16603报错的解决方法(DG Broker)
Apr 06 Oracle
Oracle 数据仓库ETL技术之多表插入语句的示例详解
Apr 12 Oracle
使用springboot暴露oracle数据接口的问题
May 07 Oracle
zabbix agent2 监控oracle数据库的方法
May 13 Oracle
使用Navicat Premium工具将oracle数据库迁移到MySQL
May 27 Oracle
ORACLE数据库应用开发的三十个注意事项
Jun 07 Oracle
Oracle以逗号分隔的字符串拆分为多行数据实例详解
Jul 16 Oracle
RPM包方式安装Oracle21c的方法详解
Aug 23 Oracle
详解Oracle数据库中自带的所有表结构(sql代码)
Nov 20 Oracle
详细聊聊Oracle表碎片对性能有多大的影响
Mar 19 Oracle
排查并解决Oracle sysaux表空间异常增长
Apr 20 Oracle
详解Oracle块修改跟踪功能
Nov 07 #Oracle
Oracle安装TNS_ADMIN环境变量设置参考
Nov 01 #Oracle
关于Oracle12C默认用户名system密码不正确的解决方案
Oct 16 #Oracle
C#连接ORACLE出现乱码问题的解决方法
Oct 05 #Oracle
Oracle 临时表空间SQL语句的实现
Sep 25 #Oracle
oracle索引总结
Sep 25 #Oracle
Oracle 死锁的检测查询及处理
Sep 25 #Oracle
You might like
php5 apache 2.2 webservice 创建与配置(java)
2011/01/27 PHP
Drupal读取Excel并导入数据库实例
2014/03/02 PHP
采用thinkphp自带方法生成静态html文件详解
2014/06/13 PHP
php实现excel中rank函数功能的方法
2015/01/20 PHP
PHP中大于2038年时间戳的问题处理方案
2015/03/03 PHP
php实现字符串翻转的方法
2015/03/27 PHP
php中array_multisort对多维数组排序的方法
2020/06/21 PHP
PHP实现的猴王算法(猴子选大王)示例
2018/04/30 PHP
lib.utf.js
2007/08/21 Javascript
Javascript条件判断使用小技巧总结
2008/09/08 Javascript
File文件控件,选中文件(图片,flash,视频)即立即预览显示
2009/04/09 Javascript
kmock javascript 单元测试代码
2011/02/06 Javascript
js图片闪动特效可以控制间隔时间如几分钟闪动一下
2014/08/12 Javascript
javascript中sort()的用法实例分析
2015/01/30 Javascript
浅谈jQuery构造函数分析
2015/05/11 Javascript
JavaScript遍历求解数独问题的主要思路小结
2016/06/12 Javascript
基于Bootstrap仿淘宝分页控件实现代码
2016/11/07 Javascript
codeMirror插件使用讲解
2017/01/16 Javascript
vue.js在标签属性中插入变量参数的方法
2018/03/06 Javascript
JavaScript设计模式之工厂模式和抽象工厂模式定义与用法分析
2018/07/26 Javascript
LayUi中接口传数据成功,表格不显示数据的解决方法
2018/08/19 Javascript
vue从后台渲染文章列表以及根据id跳转文章详情详解
2020/12/14 Vue.js
pygame学习笔记(6):完成一个简单的游戏
2015/04/15 Python
Django使用HttpResponse返回图片并显示的方法
2018/05/22 Python
在python中list作函数形参,防止被实参修改的实现方法
2020/06/05 Python
button在IE6/7下的黑边去除方案
2012/12/24 HTML / CSS
amazeui树节点自动展开折叠面板并选中第一个树节点的实现
2020/08/24 HTML / CSS
加拿大廉价机票预订网站:CheapOair.ca
2018/03/04 全球购物
什么是抽象
2015/12/13 面试题
法院授权委托书格式
2014/09/28 职场文书
2015新年寄语(一句话)
2014/12/08 职场文书
师德师风事迹材料
2014/12/20 职场文书
工厂员工辞职信范文
2015/05/12 职场文书
2016年优秀少先队辅导员事迹材料
2016/02/26 职场文书
在redisCluster中模糊获取key方式
2021/07/09 Redis
排查并解决MySQL生产库内存使用率高的报警
2022/04/11 MySQL