Oracle同义词
Oracle synonym(同义词)
同义词是数据库当前用户通过给另外一个用户的对象创建一个别名,然后可以通过对别名进行查询和操作,等价于直接操作该数据库对象。
Oracle同义词常常是给表、视图、函数、过程、包等制定别名,可以通过CREATE 命令进行创建、ALTER 命令进行修改、DROP 命令执行删除操作。
同义词访问权限
Oracle synonym 同义词按照访问权限分为私有同义词、公有同义词。
私有同义词:私有同义词只能当前用户可以访问,前提:当前用户具有create synonym 权限。
公有同义词:公有同义词只能具有DBA用户才能进行创建,所有用户都可以访问的。
语法结构
CREATE [OR REPLACE] [PUBLIC] SYSNONYM [当前用户.]synonym_name FOR [其他用户.]object_name;
示例:以HR模式下的 JOBS 表为对象在当前用户下创建一个名为 JOBS 的同义词,这样我们可以直接在当前模式下访问另一个模式中的表数据
CREATE SYNONYM JOBS FOR HR.JOBS;
解析:
- create [or replace] 如果当前用户下同义词对象名已经存在的时候,就会删除原来的同义词,用新的同义词替代上。
- [public]:创建的是公有同义词,在实际开发过程中比较少用,因为创建就代表着任何用户都可以通过自己用户访问操作该对象,一般我们访问其他用户对象时,需要该用户进行授权给我们。
同义词删除
同义词删除只能通过同义词拥有者的用户或者具有DBA权限的用户才能删除。
语法结构:
DROP [PUBLIC] SYNONYM [用户.]sysnonym_name;
示例:
DROP SYNONYM JOBS;