ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【Oracle】-【同义词】-public与非public同义词

【Oracle】-【同义词】-public与非public同义词

原创 Linux操作系统 作者:bisal 时间:2013-07-26 09:59:16 0 删除 编辑

[现象]:

Sys账户给bisal账户的t_emp表创建public同义词,bisal用户可以访问t_emp_syn,但scott账户无法查询,select ... t_emp_syn提示表或视图不存在。

SQL> select * from t_emp_syn;

select * from t_emp_syn

              *

ERROR at line 1:

ORA-00942: table or view does not exist

[原因]:

Scott没有bisal.t_emp表的访问权限,因此提示表或视图不存在。

[解决]:

使用bisal,执行grant select on t_emp to scott;

使用scott,可以执行t_emp_syn

SQL> select * from t_emp_syn;

     EMPNO EN     DEPTNO

 ---------- --  ----------

         1  c       1

         2  d       2

         3  f       0

        10  1       1

        12  1a      1

[总结]:

Public同义词,一个用户A若需要访问另一个用户B建立的表的同义词,则需要有用户B该表(也就是基表)的访问权限。

若是普通同义词,DBA用户可以访问任何用户创建的非public同义词,但不同的普通用户之间,除非授予基表的访问权限,否则不能随意访问其它用户的非public同义词,这也是public存在的用途。

可以为一个基本建立多个不同的同义词。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7192724/viewspace-767152/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle ACE,10g/11g OCP,11g OCM,国内首批Oracle YEP成员(Oracle Young Expert Program,Oracle用户组年轻专家项目),EXIN DevOps Master,Oracle爱好者,微信公众号:bisal的个人杂货铺

注册时间:2013-07-26

  • 博文量
    340
  • 访问量
    2622660