我建立了一个用户 分配的角色权限为connect 系统权限为 select any table 
为何我以这个新用户登录(登录方式pl/sql)的时候点击tables 里边一个表也没有呢??
这个用户应该怎样建立?请帮忙解答,谢谢了

解决方案 »

  1.   

    应该可以看查看到表的:
    grant connect to yourUser;grant select any table to yourUser;
      

  2.   

    用sql语句查询,你这样看到的是该用户拥有的表;
    或者自己建同义词:SQL> select * from tab;TNAME                          TABTYPE  CLUSTERID
    ------------------------------ ------- ----------
    A                              TABLE
    BIN$RMDvE0hBTcG7v8uNrDlL0Q==$0 TABLE
    BIN$wAMM6chBTgSGkeV3flZ7oQ==$0 TABLE
    BORROW                         TABLE
    DEPT                           TABLE
    DEPT_EMP                       VIEW
    EMP                            TABLE
    T1                             TABLE
    T2                             TABLE
    TBUSER_INFO                    TABLE
    TEMP                           TABLE
    TEMP_TEST                      TABLE
    TEST_TABLE                     TABLE已选择13行。SQL> create synonym dict for sys.dict;同义词已创建。SQL> select * from tab;TNAME                          TABTYPE  CLUSTERID
    ------------------------------ ------- ----------
    A                              TABLE
    BIN$RMDvE0hBTcG7v8uNrDlL0Q==$0 TABLE
    BIN$wAMM6chBTgSGkeV3flZ7oQ==$0 TABLE
    BORROW                         TABLE
    DEPT                           TABLE
    DEPT_EMP                       VIEW
    DICT                           SYNONYM
    EMP                            TABLE
    T1                             TABLE
    T2                             TABLE
    TBUSER_INFO                    TABLE
    TEMP                           TABLE
    TEMP_TEST                      TABLE
    TEST_TABLE                     TABLE已选择14行。SQL>
      

  3.   

    查看此贴
    http://jiangxi_wangwj.itpub.net/post/2339/50726
      

  4.   

    你这个用户下根本没的见表。只是赋予你访问其他用户表的权限罢了
    select * from user.tablename;
      

  5.   


    我试了一上,可以看到其他用户的表啊sql>create role rolea;
    sql>grant connect, select any table to rolea;
    sql>create user a identified by a;
    sql>grant rolea to a;然后用a登陆,可以看到其他用户的表。
      

  6.   

    你是不是想创建一个用户,他可以也只能读取到所有用户的表。如果是的话请参照下文:
    grant select any table
    to "user";

    这个命令可以实现你说的功能。
    你说你点tables里面一个表也没有,是因为该用户只能读取到所有用户的表,但其他用户的表的创建者理所当然是其他用户,也就是说你并不拥有该表,你只是拥有查看它的权利。而该用户本身尚未建立一个表。
    你可以用sql语句
    select * from user.table;
    在你知道某个用户拥有某个表的情况下来查看其他用户的表的内容。如果你想还能查看其他用户拥有哪些表的话,还要执行
    grant select
    on sys.dba_tables
    to user;

    这样一来,你就可以通过sys.dba_tables表来查看哪些人拥有哪些表了。
      

  7.   

    SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE='CONNECT'
      

  8.   

    楼主你可能犯了一个小错误,PL/SQL DEVELOPER里边左侧一栏上面有个选项,如果你选者MY OBJECTS且你这个用户下没表的话,当然你就看不到表。你选到ALL OBJECTS就可以看到了。刚才我试过了。