oracle 同义词和database link

1.1 数据库创建同义词(synonym)

Oracle的同义词(synonyms)从字面上理解就是别名的意思,和视图的功能类似,就是一种映射关系。它可以节省大量的数据库空间,对不同用户的操作同一张表没有多少差别;它扩展了数据库的使用范围,能够在不同的数据库用户之间实现无缝交互;Oracle数据库中提供了同义词管理的功能。同义词是数据库对象的一个别名,经常用于简化对象访问和提高对象访问的安全性。在使用同义词时,Oracle数据库将它翻译成对应方案对象的名字。与视图类似,同义词并不占用实际存储空间,只有在数据字典中保存了同义词的定义。在Oracle数据库中的大部分数据库对象,如表、视图、物化视图、序列、函数、存储过程、包、同义词等等,数据库管理员都可以根据实际情况为他们定义同义词。创建同义词,访问不同用户下的表,不用加用户名。(意思就是取了一个公用的别名)

1.2 在同一数据库下创建同义词

 (1) 查询同义词数据字典

 (2) 查询创建、删除同义词所拥有的权限

 (3) 创建同义词

    用户B 需要访问用户A 中的 teacher 表

    那么在用户B下创建同义词:create synonym teacher for A.teacher ;

    用户B 查询 teacher : select * from teacher  ;此时便可访问该表

1.3 在不同数据库下创建同义词

      假如:192.168.200.00 需要访问 192.168.200.11 数据库下的对象,此时两个库并不在一个服务器,

可以通过创建database link 和 同义词结合的方法访问该对象

 (1) 查询database link 所拥有的权限

 (2) 创建database link

      在192.168.200.00 上创建database link

create database link db_clp_itf
connect to clp_itf identified by itf072
using'
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.200.00)(PORT = 1521))
)
(CONNECT_DATA =
(sid = orcl)
)
) ';

 db_clp_itf :是database link 名称

 clp_itf   :   是远程数据库用户名

 itf072    :   是远程数据库的密码

 using    :   是数据库服务端tnsnames配置

 (3) 创建同义词

      在192.168.200.00 上创建同义词

 create synonym t_synonym_test for t_synonym_test@db_clp_itf; 

猜你喜欢

转载自www.cnblogs.com/jason3361/p/11119704.html