oracle刷同义词报错,oracle 同义词

今天又是被业务催命似的催着改bug,咋一看很简单,ora-00942:表或视图不存在。要么是表名被改了,要么就是sql语句写错了呗。但抱着对同事的专业精神的信(shi)任(wang),我还是去问了一下同事,老铁,帮我看一下这个表是哪张表呗,然后坐等他跟我承认他改了表。可是结果,那张表存在的!只不过属于另一个用户。然后请教了同事,原来不同的用户之间可以通过同义词来互相访问各自的表,但是仅仅了解了这个还不够,bug依然存在。接下来需要更多的步骤来查明,解决这个问题。

问题一:什么是同义词,作用又是什么?

从网上抄来的定义:同义词是数据库方案对象的一个别名,经常用于简化对象访问和提高对象访问的安全性。在使用同义词时,Oracle数据库将它翻译成对应方案对象的名字。

说白了,就是别名的意思,和视图的功能类似,就是一种映射关系.关于同义词的更多详细信息可以百度一下,在这里就不赘述了。

基本用法:

create [public] synonym 同义词名称 for [username.]objectName;

[public]属于可选项,如果加上了就是公有同义词,没加就是私有同义词。

一般创建的时候都不写public ,也就是私有同义词,拥有者可以通过授权来控制其他用户对表的相关操作:如增删改查。

那么问题就来了,现在我查询这张表时发现无法找到这张表,说明了要么这张表他根本就没有创建同义词,要么就是该用户没权限,究竟属于哪种情况需要排查。

2.如何查看已经创建的同义词&

你可能感兴趣的:(oracle刷同义词报错)