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;