操作步骤描述如下:
1、创建了一个数据库:Master
2、以system的身份登录这个数据库,创建了两个表空间:Myspace和Mytemp
3、创建了两个表:user和menu,并且把表加入到了myspace中
4、创建用户me,密码me,Default表空间MySpace
之后用me以normal的方式登录Master,登录成功,但是在My Object当中看不见任何表项
但是用me以sysdba的方式登录Master,登录成功,可以看见user和menu
从而导致我配置的数据连接池连接成功,但是无法进行任何操作
请问,如何把那两个表划分到normal级别的用户me下?PS:我根据一些说法进行了grant select any table to me的操作,但是在normal级别仍旧无法看到任何表项。数据连接池连接依然成功,依然无法进行任何表操作。报错信息为:表或者视图不存在。
恳请各位大侠解答。
谢谢!

解决方案 »

  1.   

    概念不清楚导致的理解错误.
    任何用户以sysdba方式登路后,用户都会变成sys.
    从你的描述可以得知,sys用户下建立了两个表:user和menu;所以owner属于sys.
    而你创建了me用户后,没有创建任何表,当然自己的目录下没有表了.
    但是me在有了select any table的权限后,可以查看sys的表user和menu.
    方法是: select * from sys.user; select * from sys.menu;me用户创建表后,目录树下就会看到的.
    比如:
    create table tt (n int);
      

  2.   

    表对象的创建属于所登陆使用用户的对象   一个表只能属于一个用户对象 如果其它用户要进行操作可以通过 
    create table user select * from system.user创建 grant select any table to me的权限分配只是针对Me用户下所拥有的表对象 对表的DDL、DML操作都要设置权限或分配角色
      

  3.   

    这种情况最好用用户ME登陆来创建用户表.
    CONN ME/****
    CREATE TABLE.........
    这样,创建的表直接挂在ME下面.
      

  4.   

    嗯  
        create table me.tt(...)
       tablespace me
      

  5.   

    建议用create table xxx as select schema.表名 where 1=2
    的方式将表结构复制过来.
    然后删除掉sys下的两个表.
      

  6.   

    sysdba 是可以以任何身份登陆的,并不是以me登陆的,登陆后就是sys身份。在sys身份下创建了表。肯定能看的见。grant select any table to me 是对象权限,也就是只有普通用户对普通用户之间的。而且一般不在sys下建表。
      

  7.   

    建议将表结构复制过来. 
    然后删除掉sys下的两个表. 
    create table student as select schema.stu wherr 1=2