问题描述: 
有两个oralce数据库用户:lyweb@martdb1和lylocal@martdb1 lylocal@martdb1下的表ft_mid_user_daily 
在lyweb@martdb1下要用该表 
想在lyweb@martdb1下进行如下操作: 
select * from ft_mid_user_daily 问题解答: 1.在lylocal@martdb1下进行赋权限: 
grant  select on ft_mid_user_daily to lyweb; 
2.在lyweb@martdb1下进行如下操作: create or replace synonym ft_mid_user_daily  for lylocal.ft_mid_user_daily; 

解决方案 »

  1.   

    简化访问啊.
    create or replace synonym ft_mid_user_daily  for lylocal.ft_mid_user_daily; 
    未创建同义词前要访问的话是: select * from lylocal.ft_mid_user_daily;
    创建同义词后是: select * from ft_mid_user_daily ;
      

  2.   

    最大优点在于可以隐藏你所访问数据库表的物理地址,通过同义词访问的表不一定是本机的表,可以是远程机器上的表!和DB LINK联用
      

  3.   

    主要是用起来方便,比如你当前帐户是myuser
    想访问scott帐户下的emp表。不创建同义词的话
    select * from scott.emp;创建同义词后
    create synonym emp for scott.emp
    就可以直接访问了select * from emp