create user JAMES
     identified by JAMES
     default tablespace USERS
     temporary tablespace TEMP;
默认情况下没有给JAMES分配USER表空间的限额,Create table JAMES.test(cola int);时不会提示超出表空间‘users’的空间限额。,按理说应该会提示的才对,因为我没有给它分配限额

解决方案 »

  1.   

    你如果给用户赋了RESOURCE角色,则该用户具有了
    UNLIMITED TABLESPACE权限,所以可以任意使用users
      

  2.   

    SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 6月 4 20:33:35 2011Copyright (c) 1982, 2005, Oracle.  All rights reserved.
    连接到: 
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
    With the Partitioning, OLAP and Data Mining optionsSQL> create user james identified by james default tablespace users;用户已创建。SQL> grant CREATE SESSION,CREATE SEQUENCE,CREATE TRIGGER,CREATE CLUSTER,CREATE PROCEDURE
      2  CREATE TYPE,CREATE OPERATOR,CREATE TABLE,CREATE INDEXTYPE to james;授权成功。SQL> connect james/[email protected]
    已连接。
    SQL> create table test(id number);
    create table test(id number)
    *
    第 1 行出现错误:
    ORA-01950: 对表空间 'USERS' 无权限SQL> select * from session_privs;PRIVILEGE
    ----------------------------------------
    CREATE SESSION
    CREATE TABLE
    CREATE CLUSTER
    CREATE SEQUENCE
    CREATE PROCEDURE
    CREATE TRIGGER
    CREATE TYPE
    CREATE OPERATOR
    CREATE INDEXTYPE已选择9行。SQL> connect system/[email protected]
    已连接。
    SQL> grant resource to james;授权成功。SQL> connect james/[email protected]
    已连接。
    SQL> create table test(id number);表已创建。SQL> select * from session_privs;PRIVILEGE
    ----------------------------------------
    CREATE SESSION
    UNLIMITED TABLESPACE
    CREATE TABLE
    CREATE CLUSTER
    CREATE SEQUENCE
    CREATE PROCEDURE
    CREATE TRIGGER
    CREATE TYPE
    CREATE OPERATOR
    CREATE INDEXTYPE已选择10行。SQL>