Oracle数据库中对权限的管理是通过方案来进行的,一个方案通常就是一个用户名。当用户A进入Oracle后,其所创建的数据库对象可以称为A方案对象,为了让B方案用户可以访问,除了为B用户分配权限外,B用户访问A用户的对象必须使用“方案名.数据库对象名”这样的格式,比如要在hr方案中访问scott方案中的表emp,则需要使用“scott.emp”这样的语法形式,为了提供友好的访问名称,Oracle提供了同义词的功能。
同义词简介
创建同义词的目的是简化对目标对象的访问,使用户易于查阅表的所有者,并且使对象的名字变短。同义词并不占用实际存储空间,只在数据字典中保存了同义词的定义。Oracle数据库中的大部分数据库对象,如表、视图、序列、存储过程、包等,都可以定义同义词。
同义词可以分为如下两种类型:
- 公有同义词:能被所有的数据库用户访问的同义词。
- 私有同义词:只能由创建的用户访问的同义词。
创建和使用同义词
语法如下:
CREATE [PUBLIC] SYNONYM synonym
FOR object;
例如:
CREATE PUBLIC SYNONYM scottemp
FOR scott.emp;
同义词被创建以后,就可以像使用本地表一样对scottemp进行操作,如:
SELECT * FROM scottemp;
DELETE FROM scottemp WHERE empno = 100;
删除同义词
如:
DROP PUBLIC SYNONYM scottemp;
|