CREATE USER <username> QUOTA 0 K ON <tablespacename>
/

解决方案 »

  1.   

    不给用户resource权限,它就只能在自己的缺省表空间创建表
    SQL> create user cp identified by cp 
      2  default tablespace ts1
      3  temporary tablespace temp
      4  quota unlimited on ts1;SQL> grant connect to cp;授权成功。SQL> grant resource to cp;授权成功。SQL> connect cp/cp@orcl
    已连接。
    SQL> create table test (id char(10)) tablespace ts2;
    表已创建。SQL> connect system/manager@orcl
    已连接。
    SQL> revoke resource from cp;撤销成功。
    SQL> create table aatest (id char(10)) tablespace ts2;
    create table aatest (id char(10)) tablespace ts2
    *
    ERROR 位于第 1 行:
    ORA-01536: 超出表空间'TS2'的空间限量
    SQL> create table aatest (id char(10)) tablespace ts1;表已创建。
      

  2.   

    用system/manager进OEM后,进行详细设计,方便直观
      

  3.   

    black_snail(●龙飞虎○) 的方法要求以后调整了表空间,比如增加了表空间之后还要对所有的用户进行重新设置
    maohaisheng的方法我不是很明白。如果不给他resource的权限,那一开始为什么要给他这个权限?revoke之后他还可以自由在那个表空间上操作吗?包括建新的对象、删除、修改什么的。
      

  4.   

    CONNECT角色: --是授予最终用户的典型权利,最基本的ALTER SESSION --修改会话
    CREATE CLUSTER --建立聚簇
    CREATE DATABASE LINK --建立数据库链接
    CREATE SEQUENCE --建立序列
    CREATE SESSION --建立会话
    CREATE SYNONYM --建立同义词
    CREATE VIEW --建立视图
    RESOURCE角色: --是授予开发人员的CREATE CLUSTER --建立聚簇
    CREATE PROCEDURE --建立过程
    CREATE SEQUENCE --建立序列
    CREATE TABLE --建表
    CREATE TRIGGER --建立触发器
    CREATE TYPE --建立类型
      

  5.   

    CREATE USER <username> 
    identified by pass
    ...
    default role all;  --所有角色
    default role CONNECT,RESOURCE;
      

  6.   

    -----------
    revoke之后他还可以自由在那个表空间上操作吗?包括建新的对象、删除、修改什么的。
    -----------
    可以进行数据增删改。
    但是数据库对象就不行了。我们现场开发,和用户使用一个数据库,有时候进行resource的授权。我们一般控制建立数据库对象的权限,而不是控制对象具体建立哪个表空间上。
      

  7.   

    现在有同事他可能会自己产生一些自己用的表,所以必须要给他对数据库对象操作的权限
    同一台机器上其它的表空间不想让他操作,所以要限制一下。
    这oracle的权限控制还真是麻烦啊