Oracle下建立同义词(Synonym)
问题描述:
有两个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;
需要注意的一点:
在lyweb@martdb1中不能包含有表ft_mid_user_daily,虽然create or replace synonym 语句可以执行,但是执行select * from ft_mid_user_daily(本意为想读lylocal@martdb1下的ft_mid_user_daily中的内容),但显示的还是lyweb@martdb1下的表ft_mid_user_daily内容,需要先把lyweb@martdb1下的表ft_mid_user_daily删除掉,重新建立synonym即可。