--先大概写一下,后面有时间会整理一下

一:quota相关视图

1)dba_ts_quotas(查看所有用户的表空间配额)

BYTES字段表示用户已经使用的空间;MAX_BYTES如果为-1表示没有限制,其他值表示限制配额

--只有用alter user user_name quota on tablespace_name;命令显示的调整过用户的空间配额,该视图中才会有记录,否则该视图没有记录

--如果该视图没有信息,我们可以通过user_ts_quotas视图来了解用户的表空间限额信息

2) user_ts_quotas(查看当前用户表空间配额)

--注意可能有时我们查询该视图,用户在某个表空间的配额为0,但是我们依然可以使用该表空间,那么说明用户被赋予了UNLIMITED TABLESPACE。

注:UNLIMITED TABLESPACE系统权限:此系统权限会覆盖所有的单个表空间限额,并向用户提供所有表空间(包括SYSTEM和SYSAUX)的无限制限额(注:授予resource角色的时候也会授予此权限)

--SQL> select *from user_sys_privs;查看用户是否具有UNLIMITED TABLESPACE权限

二:resource角色和quota

注意resource角色被赋予用户时,用户就自动被赋予了UNLIMITED TABLESPACE权限(虽然resource中并不包含该权限)如果我们把resource角色从用户收回,那么UNLIMITED TABLESPACE权限也会自动收回

##注意如果你把resource角色赋予另外一个角色a,然后再把角色a赋予用户,那么用户不会被赋予UNLIMITED TABLESPACE权限

SQL> select * from role_sys_privs where role='RESOURCE'; >>resource角色中并不包含UNLIMITED TABLESPACE权限

ROLE                           PRIVILEGE                                ADM
------------------------------ ---------------------------------------- ---
RESOURCE                       CREATE CLUSTER                           NO
RESOURCE                       CREATE SEQUENCE                          NO
RESOURCE                       CREATE TRIGGER                           NO
RESOURCE                       CREATE TABLE                             NO
RESOURCE                       CREATE PROCEDURE                         NO
RESOURCE                       CREATE TYPE                              NO
RESOURCE                       CREATE OPERATOR                          NO
RESOURCE                       CREATE INDEXTYPE                         NO

SQL> grant connect,resource to test1;

SQL> conn test1/oracle1234;

SQL> select * from session_privs;  >>可以看到被赋予resource角色以后,自动拥有了UNLIMITED TABLESPACE权限
PRIVILEGE
----------------------------------------
CREATE SESSION
UNLIMITED TABLESPACE
CREATE TABLE
CREATE CLUSTER
CREATE SEQUENCE
CREATE PROCEDURE
CREATE TRIGGER
CREATE TYPE
CREATE OPERATOR
CREATE INDEXTYPE

三:配额管理

1)建用户时指定配额

SQL> create user java identified by oracle default tablespace users temporary tablespace temp quota 100m on users quota 100m on system;

--注意temp表空间不支持表空间配额

2)更改用户表空间配额

grant unlimited tablespace to java;--不对用户作配额限制

alter user java quota unlimited on users;--对指定表空间不做限额

alter user java quota 1000m on users;--指定用户在某表空间限制

revoke unlimited tablespace from java;--收回用户的unlimited tablespace权限

alter user java quota 0 on users;--针对alter … quota unlimited …;

--如果用户已经被授予了unlimited tablespace权限的话,那么alter user java quota 0 on users;限制是不起作用的

四:表空间已删除,关于表空间配额信息还存在

表空间被删除以后但是关于该表空间的配额信息在视图中依然能够查到

这个是正常的,因为表空间被drop后,ts$和tsq$中的信息并没有被清理,如果你重建一个同名的tablespace,并限制quota 为0,tsq$中的记录就被删除了.

从10gR2开始,你可以使用
drop tablespace mytsincluding contents and datafiles drop quota;
这样的语法,一并将quota信息删除,默认是keep quota.

trace的时候你会发现,如果加上drop quota这样的options clause,那么就会有
select user# from tsq$ wherets#=:1
delete from tsq$ where ts#=:1and user#=:2
...
这样的动作.而dba_ts_quotas视图的定义正是使用了tsq$中的信息
create or replace viewsys.dba_ts_quotas
(tablespace_name, username, bytes, max_bytes, blocks, max_blocks, dropped)
as
select ts.name, u.name, nvl(spc.bytes, 0),
       decode(q.maxblocks, -1, -1, q.maxblocks *ts.blocksize),
       nvl(spc.blocks, 0), q.maxblocks, decode(ts.online$,3, 'YES', 'NO')
from sys.tsq$ q, sys.ts$ ts, sys.tbs_space_usagespc, sys.user$ u
where q.ts# = ts.ts#
  and q.user# = u.user#
  and spc.tsn  = ts.ts#
  and spc.owner = u.name
  and q.maxblocks != 0

本文出自 “技术” 博客,请务必保留此出处http://589985.blog.51cto.com/1609992/1336658

oracle表空间配额(quota)与UNLIMITED TABLESPACE系统权限相关推荐

  1. 详解Oracle的unlimited tablespace系统权限

    1. 系统权限unlimited tablespace是隐含在dba, resource角色中的一个系统权限. 当用户得到dba或resource的角色时, unlimited tablespace系 ...

  2. Oracle入门(七A)之表空间配额(quota)

    转载自 oracle表空间配额(quota) 一.quota相关视图 1)dba_ts_quotas(查看所有用户的表空间配额) BYTES字段表示用户已经使用的空间:MAX_BYTES如果为-1表示 ...

  3. ORACLE 表空间不足与用户配额(限额)不足的问题解决

    表空间不足与用户配额不足是两种不同的概念.表空间的大小是指实际的用户表空间的大小,而配额大小指的是用户指定使用表空间的的大小.两者的解决方式亦不相同.(看看这里) 配额问题的解决:alter user ...

  4. oracle 表空间管理

    表空间是ORACLE数据库最高层次的逻辑存储结构,保存段.区.块,由一个或多个数据文件组成. 块的存储管理 块是ORACLE存储结构的最小单位.块大小分为标准数据块和非标准数据块 标准数据块由DB_B ...

  5. Oracle表空间及数据文件操作

    查看所有表空间: sql> SELECT * FROM dba_tablespaces; 创建test表空间并创建数据文件test_01.dbf: test_01.dbf 初始大小为10m,开启 ...

  6. Oracle11使用现在数据库文件,oracle11g 重装操作系统后,如何利用原有oracle表空间文件还原数据库...

    oracle11g 重装操作系统后,如何利用原有oracle表空间文件还原数据库 最近由于系统重装,在还原dmp备份文件时,由于数据原因(用exp命令导出时表没有导出全部),导致系统不能正常运行.根据 ...

  7. Oracle 用户 对 表空间 配额(quota ) 说明

    一. 官网的说明 Oracle 官网对quota的定义如下: A limit on a resource, such as a limit on the amount of database stor ...

  8. Oracle 表空间(tablespace)

    Oracle 表空间(tablespace) ​ 在oracle中,表空间是Oracle数据对象和数据存储的容器,是一个逻辑概念.若干操作系统文件就可以组成一个表空间.表空间统一管理空间中的数据文件( ...

  9. Oracle 表空间(tablespace)介绍

    Oracle 表空间(tablespace)介绍 在oracle中,表空间是Oracle数据对象和数据存储的容器,是一个逻辑概念,若干操作系统文件就可以组成一个表空间.表空间统一管理空间中的数据文件( ...

最新文章

  1. ftp使用(图文详解)
  2. return error怎么定义_SpringBoot 系列 web 篇之自定义返回 Http Code 的 n 种姿势
  3. python调用高德api路径规划_Python调用高德API实现批量地址转经纬度并写入表格的功能...
  4. 3/7 SELECT语句:过滤(WHERE)
  5. 遗传算法求二元函数极值怎么编码_用遗传算法求复杂函数的极值点
  6. 并发编程的 15 条建议(译)
  7. LaTeX中常用表格制作方法总结
  8. js判断是对象还是集合
  9. JBPM工作流框架应用
  10. 7个最优秀的手机游戏引擎
  11. IDEA更改maven镜像源
  12. Linux系统常用测试工具
  13. 软件性能测试方案怎么写?完整的性能测试报告模板分享
  14. Cesium对entity的操作以及资源记录(增删改查)
  15. 网盘搜索引擎(原创: 涔歌 涔歌 2018-03-25 特别说明,不同网盘搜索引擎搜录内容、搜索算法、提供的功能不同造成搜索结果差异较大,找不到时可以多尝试几个)...
  16. 计算机视觉、图像处理学习资料汇总(转)
  17. PyTorch RuntimeError: Function ‘CudnnBatchNormBackward0‘ returned nan values in its 0th output. 解决方法
  18. 小新air15为啥没人买_小新air15为啥没人买
  19. java生成冒泡算法
  20. 原生js动态添加class

热门文章

  1. 世界名著《平凡的世界》读后感3800字范文
  2. 有理样条曲线学习笔记(一)
  3. html 3D球状旋转标签云文字云效果
  4. CT图像重构方法详解——傅里叶逆变换法、直接反投影法、滤波反投影法
  5. 直接反投影 matlab,直接反投影法.ppt
  6. html打印页眉页脚_HTML5基本元素:页眉,导航和页脚
  7. PAT L1 007 念数字
  8. [转]部分日文实用网址介绍
  9. mysql(数据库)初级操作
  10. 敏捷软件开发宣言和原则