如何去掉表前面得用户前缀?新建了一个数据库test,同时生成了一个用户test,开发时,当我用test登陆时,下面这样查询数据没有错:
select * from table1
现在我新建了一个用户a,当用这个用户登陆时,查询数据用:
select * from test.table1,这个没有错如果我想去掉前缀test.,变成select * from table1该进行什么操作呢?(a用户拥有查询得权限)

解决方案 »

  1.   

    不建同义词的话,可能没有什么更好的方法,select * from table1 本来就是一种缩略了的写法。
      

  2.   

    connect test@数据库;grant select on table1 to a;
      

  3.   

    ---》》赋予a用户查询test用户所有表的权限
    如何做呢?(我要方位test用户下所有的表,建那么多同义词不现实)
      

  4.   

    建立同义词,语法如下创建同意词(单个表的)
    CREATE SYNONYM STUFF_M_CUS FOR MATT.STUFF_M_CUS;ower下的所有表一次性创建的如下:
    SELECT 'create synonym ' || NAME || ' FOR [owername].'||NAME||';'
     FROM (SELECT DISTINCT TABLE_NAME NAME
             FROM ALL_TABLES
            WHERE OWNER = [owername])
      

  5.   

    一般来说,一个用户test有下面2种权限即可满足应用:
    grant connect,resource to test
    如果想对其他用户下面的对象进行DML操作,可以授予权限:
    grant select,update,delete on table1 to a
    收回权限:
    revoke select,update,delete on table1 from a
      

  6.   

    我是新手,大家跟我具体讲下怎么创建同义词么?
       我有a  b 两个数据库   a中有表 cat   怎么样创建同义词才能够在b表中
                            用select * from cat;就可以查询a中的表cat了?
    先谢谢了