synonym的使用

[转]
比如用户someone有一个表some_tab
其他用户(otheruser)要访问这个表
首先在给他权限
someone要执行
grant select(,update,...) on some_tab to otheruser;
然后otheruser这个用户:
select * from someone.some_tab;
如果create otheruser.some_tab for someone.some_tab;
someone就可以select * from some_tab;
当然如要create synonym otheruser.othertab for someone.some_tab;
就select * from othertab;

如create public synonym some_tab for someone.some_tab;
那就不光otheruser可以用了,所有用户都可以。

一个synonym的具体运用:
table somedba.data中有usr,fd1,fd2,fd3字段
somedba执行
create view usr_data as
select fd1,fd2,fd3 from data
where usr = user;
create public synonym data for somedba.usr_data;
这样每个用户就只能看到自己的数据了。
一个程序中,不同用户执行,会访问不同的表或视图,而你又不想在程序有加以判断,就可以在建同义词时,不同用户对应不同表或视图。

你可能感兴趣的:(synonym)