在Oracle数据库里,同义词是数据库对象的别名,能够简化跨用户、跨数据库的对象的访问操作,很多时候我们需要查询当前数据库中存在哪些同义词,或者某个同义词对应的实际对象是什么,这时候就需要用到Oracle提供的数据字典视图来完成查询操作。

Oracle同义词相关的数据字典视图
Oracle提供了三个核心的数据字典视图用于查询同义词信息,不同的视图对应不同的查询权限和范围:
- USER_SYNONYMS:存储当前用户拥有的所有同义词信息,不需要额外的权限就可以查询。
- ALL_SYNONYMS:存储当前用户有权限访问的所有同义词信息,包括自己创建的和其他用户授权可访问的。
- DBA_SYNONYMS:存储数据库中所有的同义词信息,只有拥有DBA权限或者对应系统权限的用户才可以查询。
查询当前用户拥有的同义词
如果只是需要查看自己创建的同义词,直接查询USER_SYNONYMS视图即可,这个视图不需要额外权限,所有用户都可以访问。
以下是查询当前用户所有同义词的SQL示例:
-- 查询当前用户拥有的所有同义词 SELECT SYNONYM_NAME, TABLE_OWNER, TABLE_NAME, DB_LINK FROM USER_SYNONYMS ORDER BY SYNONYM_NAME;
如果只需要查询指定名称的同义词,可以添加WHERE条件过滤:
-- 查询名称为EMP_SYN的同义词信息 SELECT SYNONYM_NAME, TABLE_OWNER, TABLE_NAME, DB_LINK FROM USER_SYNONYMS WHERE SYNONYM_NAME = 'EMP_SYN';
查询有权限访问的所有同义词
当需要查看当前用户能够使用的所有同义词,包括其他用户创建并授权的同义词时,需要查询ALL_SYNONYMS视图。
以下是查询当前用户可访问的同义词的示例:
-- 查询当前用户有权限访问的所有同义词 SELECT SYNONYM_OWNER, SYNONYM_NAME, TABLE_OWNER, TABLE_NAME, DB_LINK FROM ALL_SYNONYMS ORDER BY SYNONYM_OWNER, SYNONYM_NAME;
如果需要查询某个特定用户下的同义词,可以添加SYNONYM_OWNER的过滤条件:
-- 查询SCOTT用户下的所有同义词 SELECT SYNONYM_NAME, TABLE_OWNER, TABLE_NAME, DB_LINK FROM ALL_SYNONYMS WHERE SYNONYM_OWNER = 'SCOTT' ORDER BY SYNONYM_NAME;
查询数据库中所有同义词(需要DBA权限)
如果用户拥有DBA权限,需要查看整个数据库的所有同义词信息,可以查询DBA_SYNONYMS视图。
以下是查询全库同义词的示例:
-- 查询数据库中所有的同义词 SELECT SYNONYM_OWNER, SYNONYM_NAME, TABLE_OWNER, TABLE_NAME, DB_LINK FROM DBA_SYNONYMS ORDER BY SYNONYM_OWNER, SYNONYM_NAME;
查询同义词对应的基表信息
很多时候我们查询同义词是为了找到它对应的实际基表或者视图,这时候只需要关注TABLE_OWNER和TABLE_NAME两个字段即可,这两个字段分别表示基表的所有者和基表名称。
以下是查询指定同义词对应基表的示例:
-- 查询同义词EMP_SYN对应的基表信息 SELECT SYNONYM_NAME, TABLE_OWNER, TABLE_NAME, DB_LINK FROM ALL_SYNONYMS WHERE SYNONYM_NAME = 'EMP_SYN';
如果同义词是基于数据库链接创建的,DB_LINK字段会显示对应的数据库链接名称,这时候基表属于远程数据库的对象。
视图字段说明
同义词相关的数据字典视图主要字段含义如下:
| 字段名 | 含义说明 |
|---|---|
| SYNONYM_OWNER | 同义词的所有者 |
| SYNONYM_NAME | 同义词的名称 |
| TABLE_OWNER | 同义词对应的基表的所有者 |
| TABLE_NAME | 同义词对应的基表的名称 |
| DB_LINK | 如果同义词指向远程数据库对象,该字段为数据库链接名称,否则为空 |
注意事项
- 同义词的名称在所有者下是唯一的,不同用户可以有相同名称的同义词。
- 查询的时候如果同义词名称是小写,需要注意Oracle默认对象名是大写存储的,如果创建时用了双引号包裹小写名称,查询条件也要匹配小写。
- 普通用户没有权限查询
DBA_SYNONYMS视图,如果需要查询全库同义词,需要联系DBA授权或者获取对应权限。
Oracle同义词查询数据字典DBA_SYNONYMSUSER_SYNONYMS修改时间:2026-07-06 11:06:27