我以前用过sqlserver,现在刚接触oracle如果我新建一个叫A的表空间,建立一个叫X的用户,并且把X赋给A空间。请问:
1、我用X登录后是不是直接进入A空间了?我新建的表、视图等就直接在表空间里了吗?
2、我吧X用户加了connect /resource角色,却无权建表,为什么?

解决方案 »

  1.   

    1 oracle中表空间是所有用户共享的,X用户的表可以建在A的表空间上,其他用户的表也可以建在A上,新建表需要单独指定表空间,如果不指定会建到默认表空间里,而不是A里。2 建表需要 DBA 权限 或者 create any table 权限
      

  2.   

    当你把表空间设置成某个用户的默认表空间后,不是说你登录后就直接进入A空间了,而是说你当前用户所建的对象(如视图,存储过程,表...等)如果不指定其他表空间的话就默认存在当前用户所默认的表空间中也就是你说的A表空间。
    connect 是有用登录等其他7中权限在里面,至于resource重要的是他有无限表空间的使用权,还有你说赋了connect 和resource后还不能建表不知道咋回事了,我测试的时候是可以的。
    SQL> CREATE USER TEST2 IDENTIFIED BY TEST2 ;
     
    User created
     
    SQL> GRANT CONNECT ,RESOURCE TO TEST2;
     
    Grant succeeded
     
    SQL> CONN TEST2/TEST2
    Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 
    Connected as TEST2
     
    SQL> CREATE TABLE TEST2(NAME VARCHAR2(2));
     
    Table created
     
    SQL>