同义词(synonym):
也是数据库中的常见对象,可以看作是为表、视图、物化视图、序列、过程、函数、包、类型(type)、Java 类对象(Java class schema object)、用户定义对象类型 (user-defined object type)或是另一个同义词所创建的别名。
使用同义词是出于方便或安全上的考虑。例如,可以使用同义词进行以下工作:
- 隐藏一个数据库对象的名字和拥有者(owner)
- 隐藏分布式环境(distributed database)中远程对象(remote object)的位置
- 简化数据库用户的 SQL 语句
- 和视图类似能够限制访问,用于实现更精细的访问控制(fine-grained access control)
用户可以创建公共(public)或私有(private)的同义词。公共同义词由特殊的用户组 PUBLIC所拥有,数据库中的每个用户都能够访问。而私有同义词属于某个用户,此用户能够控制哪些
用户可以使用这些私有同义词。
CREATE PUBLIC SYNONYM sales FOR eygle.sales_data;
如果要查看数据库中有哪些同义词,可用过以下视图查询:
ALL_SYNONYMS:描述当前用户可访问的全部同义词
DBA_SYNONYMS:描述数据库中的全部同义词
USER_SYNONYMS:描述当前用户拥有的全部同义词