[Oracle]同义词(synonym)

(一)同义词的概念

同义词是数据库中表、视图、索引或其他模式对象的别名,与视图相似,同义词不占用实际的存储空间,在数据字典中只存同义词的定义。

在开发数据库时,应尽量避免直接引用表、视图或其他数据库对象,否则,当表的结构发生了改变,就会影响应用程序的使用,这个时候需要重新编译程序,如果为数据库对象创建了同义词,就可以在程序中使用同义词,这样表的结构发生变化,也不会影响到应用程序。此外,运用同义词还可以隐藏数据库对象名称以及对象所有者的信息,还可以简化对数据库对象的访问。

(二)同义词分类

同义词分为私有同义词和公有同义词,私有同义词只能被创建他的用户拥有,该用户可以控制其他用户对其同义词的使用权。公有同义词被用户组PUBLIC所拥有,数据库所有用户都可以使用共有同义词。

(三)同义词相关权限

(1)系统权限:

SYSTEM PRIVILEGE MARK
CREATE SYNONYM 在当前Schema中创建私有同义词。同时可以修改、删除同义词
CREATE PUBLIC SYNONYM 在当前 Schema中创建公有同义词
CREATE ANY SYNONYM 在任意Schema中创建私有同义词
DROP ANY SYNONYM 删除任意Schema中的私有同义词
DROP PUBLIC SYNONYM 删除当前Schema中的公有同义词

(2)对象权限

无(不确定)

(四)同义词的使用

(1)创建同义词

CREATE [OR REPLACE] [PUBLIC] SYNONYM synonym_name FOR [Schema.]object;

(2)使用同义词

用户可以使用自己Schema中的同义词,也可以使用PUBLIC同义词,还可以使用其他Schema中的同义词,但是用户还必须具有与同义词对应的数据库对象的操作权限。

(3)删除同义词

DROP [PUBLIC] SYNONYM synonym_name

*用户可以删除自己Schema下的私有同义词,要删除公有同义词,需具有DROP PUBLIC SYNONYM权限,要删除其它Schema中的同义词,需要具有DROP ANY SYNONYM权限。

(5)与同义词相关的数据字典

VIEW MARK
DBA_SYNONYMS 查看数据库全部同义词
ALL_SYNONYMS 查看当前用户可以看到的全部同义词
USER_SYNONYMS 查看当前用户拥有的同义词
时间: 2024-11-02 23:40:10

[Oracle]同义词(synonym)的相关文章

[转]oracle 同义词 synonym

本文转自:http://blog.csdn.net/generalfu/article/details/7906561 同义词定义 当一个用户想访问另外一个用户的表时, 需要在表前加用户名,总加表名不方便, 为此可以为用户名.表名起个小名别名, 以方便访问,此别名就是同义词.创建同义词 create synonym  同义词名  for 用户名.表名称; 删除同义词 drop  synonym  syn_name; 测试实例 --没有创建同义词之前 [sql] view plaincopypri

Oracle 同义词 synonym

同义词: 对另一个数据对象而言同义词是一个别名,同义词对其目标对象进行依赖,如果目标对象被更改或删除,则该同义词将变为无效. 同义词不能代替数据库对象的特权,即先用对模式的对象有查询.执行.删除等权限. 权限: 要在自己的模式中创建私有同义词,您必须具有CREATE SYNONYM系统特权. 要在另一个用户的模式中创建私有同义词,您必须具有CREATE ANY SYNONYM系统特权. 要创建PUBLIC同义词,您必须具有CREATE PUBLIC SYNONYM系统特权. 表的同义词 CREA

Oracle数据库之同义词(SYNONYM)使用

本教程用示例来说明在Oracle数据中如何创建和删除同义词(SYNONYM). 概念 同义词是指数据库对象(表.视图.序列.存储过程等数据库对象)用另一个名字来引用.比如: 建立一个同义词可以排除一个对象名字的限制. 如果你的数据库有多个用户,USER_A要访问USER_B的TABLE1,只能使用USER_B.TABLE1 建一个同义词abc指向USER_B.TABLE1,那你就可以select * from abc了,而且public的同义词会直接出现在所有用户的面前,开发不就方便多了 创建同

ORACLE 同义词(SYNONYM)详解

以下内容整理自Oracle 官方文档 一 概念 A synonym is an alias for any table, view,materialized view, sequence, procedure, function, package, type, Java classschema object, user-defined object type, or another synonym. Because a synonymis simply an alias, it requires

oracle同义词创建(synonym)

plsql developer -- Create the synonym create or replace synonym AC59 for GGYW_QY.AC59; 同义词概念 Oracle的同义词(synonyms)从字面上理解就是别名的意思,和视图的功能类似,就是一种映射关系.它可以节省大量的数据库空间,对不同用户的操作同一张表没有多少差别;它扩展了数据库的使用范围,能够在不同的数据库用户之间实现无缝交互;Oracle数据库中提供了同义词管理的功能.同义词是数据库对象的一个别名,经常

Oracle同义词概念

Oracle同义词 Oracle的同义词(synonyms)跟View功能类似,但更强大.在Oracle数据库中的大部分数据库对象,如表.视图.物化视图.序列.函数.存储过程.包.同义词等等都可以做为同义词.其目的主要有2个:用于简化对象访问和提高对象访问的安全性. 下面简单做个演示: SQL> conn scott/tiger Connected. SQL> create table test1 (id number); Table created. SQL> insert into

Oracle中synonym和index

笔记: Oracle-同义词--通过用户名(模式名).表名       --授权:grant create synonym to test1(system用户下授权))     --私有  create or replace synonym sy_test1 for gcs95.test1;  --共有  create public synonym public_sy_test1 for gcs95.test1;  /*私有:其他用户无法访问*/  select * from sy_test1;

Crodys 使用Oracle同义词解决方案

以展现流程业务信息列表为例,介绍使用Oracle同义词解决方案. 在Oracle数据库BPM_SUN用户中有如下对象: 对象名称 类型 说明 sun_biz_base table sub_focusprocess table sub_biz_info synonym create synonym SUN_BIZ_INFO for BPM_MANAGER.BIZ_INFO; 查询列表SQL语句如下所示: select a.title,to_char(a.live_date,'yyyy-mm-dd'

Oracle同义词创建及其作用

Oracle的同义词(synonyms)从字面上理解就是别名的意思,和试图的功能类似,就是一种映射关系.本文介绍如何创建同义词语句,删除同义词以及查看同义词语句. oracle的同义词总结: 从字面上理解就是别名的意思,和试图的功能类似.就是一种映射关系. 1.创建同义词语句: create public synonym table_name for user.table_name; 其中第一个user_table和第二个user_table可以不一样. 此外如果要创建一个远程的数据库上的某张表

ORACLE同义词总结

作者:潇湘隐者 出处:http://www.cnblogs.com/kerrycode/ 同义词概念 Oracle的同义词(synonyms)从字面上理解就是别名的意思,和视图的功能类似,就是一种映射关系.它可以节省大量的数据库空间,对不同用户的操作同一张表没有多少差别;它扩展了数据库的使用范围,能够在不同的数据库用户之间实现无缝交互;Oracle数据库中提供了同义词管理的功能.同义词是数据库对象的一个别名,经常用于简化对象访问和提高对象访问的安全性.在使用同义词时,Oracle数据库将它翻译成