首页 > 应用开发 > IT综合 > About quota
告警日志中抛如下的异常:
Mon Jun 25 13:36:06 2007
ORA-1654: unable to extend index IMALLCSS.IDX_T_ACTIONLOG_USERID by 2048 in tablespace TS_IMALL
Mon Jun 25 13:36:29 2007
原因有二:
1、表空间TS_IMALL已满;2、用户IMALLCSS在表空间TS_IMALL上的quota不够。
查询user_ts_quotas数据字典发现quota是unlimited的,如下:
SQL> select * from user_ts_quotas;
TABLESPACE_NAME BYTES MAX_BYTES BLOCKS MAX_BLOCKS
------------------------------ ---------- ---------- ---------- ----------
TS_IMALL 1507328 -1 368 -1
说明表空间TS_IMALL不够索引的扩展导致的异常。
SQL> desc user_ts_quotas
Name Type Nullable Default Comments
--------------- ------------ -------- ------- ------------------------------------------------
TABLESPACE_NAME VARCHAR2(30) Tablespace name
BYTES NUMBER Y Number of bytes charged to the user
MAX_BYTES NUMBER Y User's quota in bytes. NULL if no limit
BLOCKS NUMBER Number of ORACLE blocks charged to the user
MAX_BLOCKS NUMBER Y User's quota in ORACLE blocks. NULL if no limit
发现这里的NULL是错误的描述,应该-1代表no limit才对。
总结一下:
1、当执行grant resource时,oracle默认给用户添加了unlimited tablespace的系统权限,这是grant语句的一个连带动作,unlimited tablespace并不属于resource角色,见如下的查询:
SQL> select * from role_sys_privs;
ROLE PRIVILEGE ADMIN_OPTION
------------------------------ ---------------------------------------- ------------
CONNECT CREATE VIEW NO
CONNECT CREATE TABLE NO
CONNECT ALTER SESSION NO
CONNECT CREATE CLUSTER NO
CONNECT CREATE SESSION NO
CONNECT CREATE SYNONYM NO
CONNECT CREATE SEQUENCE NO
CONNECT CREATE DATABASE LINK NO
RESOURCE CREATE TYPE NO
RESOURCE CREATE TABLE NO
RESOURCE CREATE CLUSTER NO
RESOURCE CREATE TRIGGER NO
RESOURCE CREATE OPERATOR NO
RESOURCE CREATE SEQUENCE NO
RESOURCE CREATE INDEXTYPE NO
RESOURCE CREATE PROCEDURE NO
16 rows selected
从安全性的角度来考虑,在创建用户并且授予RESOURCE角色之后应该回收UNLIMITED TABLESPACE这个系统权限,否则如果一个用户具有UNLIMITED TABLESPACE的系统权限,他就可以写一个小的的脚本,然后恶意将系统用垃圾数据填满,这样数据库系统也就无法运行,并将直接导致最终的瘫痪。
2、赋予dba角色同样具有unlimited tablespace系统权限;
3、几个有用的数据字典如下:
user_ts_quotas,user_role_privs,user_sys_privs,role_sys_privs。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/38542/viewspace-921615/ ,如需转载,请注明出处,否则将追究法律责任。