在a用户下创建了一个表空间并为这个表空间创建了一个b用户,为b用户授权了connect权限,当我用b用户登陆plsql后发现在选all object时可以看到其它表空间的表并可以删除操作。于是查看当前用户权限:select * from session_privs 发现这个用户把a用户的权限都带过来了?这是什么原因?

解决方案 »

  1.   

    --创建表空间
    create tablespace test 
    datafile 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\test.dbf' size 20M        
    autoextend on next 20M maxsize unlimited logging 
    extent management local autoallocate
    segment space management auto;
    commit;--创建用户
    CREATE USER b用户
    IDENTIFIED BY b用户
    DEFAULT TABLESPACE test
    TEMPORARY TABLESPACE TEMP;
    commit;--分配角色
    grant connect to b用户;
      

  2.   

    创建脚本没有问题,connect角色就只具有create session权限。
      

  3.   


    好像不是这样的噢connect 好像有7项权限,权限分为两种
            一种为系统权限(140多种)即对数据库的相关权限如:create session(只要具有此权限便可登陆数据库),create database ,create table ,create user ....
            另一种为对象权限:即各用户对其他用户下对象的访问权限如: select,update,insert,delete,all[包含前四种] (表,视图,同义词,function,存储过程..等...),角色:--某一角色具有指定的权限--分两种(预定义角色-[安装时候便定义好],自定义角色)
            1.connect 具体7项权限