当前位置: 代码迷 >> Web前端 >> oracle中private同义词跟public同义词
  详细解决方案

oracle中private同义词跟public同义词

热度:199   发布时间:2012-09-15 19:09:28.0
oracle中private同义词和public同义词

项目中遇到,遂从网上搜索了下,觉得如下解释较为通俗易懂:

?

假设oracle有以下两个用户: admin , visitor
我们在admin下建立了 testtable  这个表,并且对visitor用户赋权
然后我们用visitor登陆 : 查询这个表的时候我们一定需要这样写
 select * from admin.testtable
如果直接写 select * from testtable oracle会报错说表不存在
但是我们可以在visitor里建立[私有同义词]  让 testtable = admin.testtable
这样在visitor下就可以直接输入 select * from testtable进行查询

但是如果用户很多的情况下会觉得很麻烦,因为每个用户都需要加[私有同义词] testtable=admin.testtable

所以就出现了 [公有同义词]
直接在admin用户下建立公有同义词  testtable = testtable

这样做好后,所有的用户都可以直接使用
select * from testtable  进行访问而并不需要加前缀,也不用再加[私有同义词]了 

?

项目中例子:

?

oracle 用户 infsa? 下 有表? a,把权限赋给infss用户

?

在infsa下执行

?

grant all on a? to? infss?;

?

create public synonym?? inf??? for? a;

  相关解决方案