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

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

[现象]:

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

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

目录
相关文章
|
2月前
|
存储 SQL Oracle
Oracle系列十二:视图、记录、同义词、序列
Oracle系列十二:视图、记录、同义词、序列
|
6月前
|
索引
Oracle-序列、索引和同义词
Oracle-序列、索引和同义词
26 0
|
网络协议 Oracle 关系型数据库
Oracle rac不能监听public ip
Oracle rac不能监听public ip
235 0
|
Oracle 关系型数据库 索引
Oracle学习(十):视图,索引,序列号,同义词
本文主要讲Oracle视图,索引,序列号,同义词
164 0
Oracle学习(十):视图,索引,序列号,同义词
|
SQL Oracle 关系型数据库
创建Oracle DBLink及同义词方法
有时业务经常需要跨库执行SQL语句,就需要创建两个数据库之间的链接对象或通过同义词来实现。
502 0
|
Oracle 关系型数据库 Java
|
Oracle 关系型数据库

推荐镜像

更多