同义词的概念:
同义词是Oracle对象的别名,使用同义词访问相同的对象
可以为表、视图、存储过程、函数或另一同义词等对象创建同义词
方便访问其它用户的对象,隐藏了对象的身份
缩短对象名字的长度
同义词创建语法:
CREATE [PUBLIC] SYNONYM synonym_name FOR object;
创建和删除同义词的权限:
创建同义词举例:
SQL> conn / as sysdba 已连接。 SQL> grant create public synonym to scott; 授权成功。 SQL> grant create any synonym to scott; 授权成功。 SQL> conn scott/tiger 已连接。 SQL> create public synonym mydept for dept; ##创建公有同义词,其它用户也可以访问 同义词已创建。 SQL> create synonym mydept for dept; ##创建私有同义词,只有Scott才可以访问,与公共同义词同名,并没有报错 同义词已创建。
删除同义词:
SQL> drop public synonym mydept; 同义词已删除。 SQL> select * from mydept; ##删除共有同义词,私有的还在 DEPTNO DNAME LOC ---------- -------------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON SQL> drop synonym mydept; 同义词已删除。
SQL> select * from mydept; select * from mydept * 第 1 行出现错误: ORA-00942: 表或视图不存在
查看同义词视图:
SQL> select * from user_synonyms; SYNONYM_NAME TABLE_OWNER TABLE_NAME ------------------------------ ------------------------------ ------------------------------ DB_LINK ------------------------------------------------------------------------------------------------------------------------ MYDEPT SCOTT DEPT SQL> conn / as sysdba 已连接。 SQL> SELECT synonym_name,table_owner,table_name FROM dba_synonyms WHERE table_name = ‘DEPT‘; SYNONYM_NAME TABLE_OWNER TABLE_NAME ------------------------------ ------------------------------ ------------------------------ MYDEPT SCOTT DEPT MYDEPT SCOTT DEPT
注意:创建的公共同义词没有出现在user_synonyms视图中
原文:http://www.cnblogs.com/zydev/p/6254446.html