本帖最后由 hm66884422 于 2010-02-05 09:27:45 编辑

解决方案 »

  1.   

    果oracle是大小写敏感的,
    如果定义表名称或列名称的时候没有用引号引起来的话 
    oracle会把他们全部转换为大写。
    Select * from "视图";
      

  2.   

    可能是view中的表没查询权限。
    你最好将view的基础表select权限也赋给该用户,或者索性将所有表的查询权限赋给他
    grant select any  view to username; 
    grant select any  table to username; 
      

  3.   

    你是不是直接查表名的啊
    没有建立同义词的话你得
    select * from 用户名.表名
      

  4.   

    个人经验,为楼主分析一二:
    1、view只是一个定义,并不实际存在,如果想要取得view的select权限,那么必须要得到基表的select权限。
    2、select时加上用户名,比如select * from username.table;
      

  5.   

    以SYS用户登录,执行grant select on view_owner_username.view_name to new_username;
      

  6.   

    用拥有所有权限的用户名登录
    grant select on 用户名.表名称 to 新建用户名;
    grant select on 用户名.视图名称 to 新建用户名;再用新建用户名登录.什么都没有
      

  7.   

    再用新建用户名登录
    select * from all_objects
    where owner=拥有所有权限的用户名;
      

  8.   

    select * from all_objects 
    where owner=拥有所有权限的用户名;执行出现错误,,,,,,,
      

  9.   

    --直接赋予查任何表的权限
    grant select any table to username;
      

  10.   

    SQL> show user
    USER 为 "SCOTT"
    SQL> select * from all_objects
      2  where owner='SYS' and rownum<2;OWNER                          OBJECT_NAME
    ------------------------------ ------------------------------
    SUBOBJECT_NAME                  OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE
    ------------------------------ ---------- -------------- -------------------
    CREATED        LAST_DDL_TIME  TIMESTAMP           STATUS  T G S
    -------------- -------------- ------------------- ------- - - -
    SYS                            DUAL
                                          258            258 TABLE
    30-8月 -05     30-8月 -05     2005-08-30:13:50:32 VALID   N N N
    SQL>需要'',自己研究下。
      

  11.   


    select * from 拥有所有权限的用户名.表名  就出来了... 
    不是权限赋错了.而是查询错了.我对不起大家!!