前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[Oracle]-[同义词]-public与非public同义词

[Oracle]-[同义词]-public与非public同义词

作者头像
bisal
发布2019-01-29 10:08:22
9500
发布2019-01-29 10:08:22
举报
文章被收录于专栏:bisal的个人杂货铺

[现象]:

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存在的用途。

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2013年06月03日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档