我用system用户在 tablespace1(非system表空间)下建了一个表table1
然后我再建了一个用户user1默认表空间tablespace1,给user1授权,但user1访问不到table1表 提示表或视图不存在.
更郁闷的是 我用user1建个table2表..用system用户访问也访问不到..提示也是表或视图不存在.
我的sql语句是这样的..sqlplus system/sss@testdb
//建表空间
create tablespace tablespace1
logging
datafile 'H:\oracle\product\10.2.0\oradata\flexcc\cic.dbf'
size 32m 
autoextend on 
next 32m maxsize 2048m
extent management local;
//建表
create table table1(...) tablespace tablespace1
//建user1
create user user1 identified by test default tablespace tablespace1
//给user1加权限.
GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,SELECT ALL
   DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE, 
      DBA,CONNECT,RESOURCE,CREATE SESSION,CREATE SEQUENCE TO user1
//用user1登录
conn user1/test

解决方案 »

  1.   

    我用system用户在 tablespace1(非system表空间)下建了一个表table1 
    然后我再建了一个用户user1默认表空间tablespace1,给user1授权,但user1访问不到table1表 提示表或视图不存在. table1在system用户下,在system下对user1授一个对象权限,如
    conn systemgrant select on table1 to user1;conn user1select * from system.table1;更郁闷的是 我用user1建个table2表..用system用户访问也访问不到..提示也是表或视图不存在. 
    我的sql语句是这样的.. system可以访问user1.table2,要这样
    conn systemselect * from user1.table2;
      

  2.   

    我用system用户在 tablespace1(非system表空间)下建了一个表table1 
    然后我再建了一个用户user1默认表空间tablespace1,给user1授权,但user1访问不到table1表 提示表或视图不存在.
    user1应该这样访问,前提是user1用户有访问table1的权限:
    select * from system.table1; 更郁闷的是 我用user1建个table2表..用system用户访问也访问不到..提示也是表或视图不存在. 
    我的sql语句是这样的.. 
    system用户应该这样访问table2表:
    select * from user1.table2;
      

  3.   

    去web控制台查看下
    多明了的
      

  4.   

    A用户访问B用户的表时要加上用户名B的
    #1的已经说清楚了 
    你去试试看吧
      

  5.   

    A用户访问B用户的表时要加上用户名B的
    #1的已经说清楚了 
    你去试试看吧
      

  6.   

    我的访问没有问题啊,就是给用户赋上dba一个权限就可以!
      

  7.   

    你建立顺序搞乱了,如果你想使用user1访问你的表,那么首先要建立user1用户,然后换作user1登录,然后建立表.这样表归属于user1,访问时不需要加用户名,
    如果你确实需要user1去访问别的用户的表,可以给表创建同义词,其他用户即可不加用户名访问
      

  8.   

    表的访问和所属的关系你没搞明白,谁建表谁拥有,如果你是user1建立的表,那个这个表就是user1的,如果你要用其它用户访问这个表的话,你要通过授权给user1,但那个用户访问的时候还是要在表前面加上表的所有者user1.tabname才能访问,这样子的目的为的就是防止表同名,因为一个用户下面只能有一个同名的表,但数据库里面可以有多个同名的表,这些表分别属于不同的用户,但可以再统一个表空间,或者分区上。
      

  9.   

    select * from sys.temp_t
    是需要这样才能访问的,因为在建立表的时候是sys用户,所以表的权限就属于sys用户,如果想直接查询表名获得数据可以建立《同义词》