各位大侠,请教一个问题,在ORACLE中怎么才能让SYSTEM这个用户看到其他人的表里的内容呢,我已经用grant select on table1 to system;
这个语句把权限付给他了啊,为什么使用
select * from table1这个语句的时候还是提示“表或者视图不存在”
但是用select * from rps.table1就可以看到内容。  (RPS是用户名)

解决方案 »

  1.   

    sys下
    grant select any table to system
    一劳永逸,不过就是权限大了些.
      

  2.   

    这是必须滴呀,你想啊,如果他不区分模式名字,你在系统表里也有个table1,
    就你当前的语句,oracle 这么做出选择呢?
      

  3.   

    用你的方法试了一下,还是提示表不存在,案例说grant完了应该能看其中的内容啊
      

  4.   

    SQL> select t.owner,t.table_name from dba_tables t where t.table_name=upper('emp');
     
    OWNER                          TABLE_NAME
    ------------------------------ ------------------------------
    SCOTT                          EMP
     
    SQL> 
      

  5.   

    grant select any table to user 就可以查但是用select * from rps.table1就可以看到内容。 (RPS是用户名)
    查看其他用户所属的表 user.scott 
    或者建同义词
    create public synonym tb for user.tb
    就可以直接select * from tb