说明:创建数据库链路,可以实现两个不同的数据库之间的控制访问。以下用简单的例子说明一下创建数据库链路的步骤:
 一.             实现功能
主要是实现两台不同机器的两个不同应用的数据交流。假设均使用Oracle数据库,A应用开放两个数据表,B应用开放两个视图。要实现A数据库可以访问B应用的两个视图的数据,B数据库可以访问A应用的两个数据表的数据。
 二.             具体步骤
以下简要说明A的创建数据链路及相关的操作:
1.       A先使用账号ADMIN_A/ADMIN_A_PSW创建两个表,如:TABLE_A1 和 TABLE_A2。这两个表就是要开放给用户B的。
2.       A创建一个用户,如:guest_b/ guest_b_psw。这个用户就是要开放给用户B来访问开放的表的。
代码如下:
create user GUEST_B identified by guest_b_psw default tablespace TABLE_SPACE temporary tablespace PCS_TEMP;
grant connect to GUEST_B;
 
3.       A使用管理员账号为GUEST_B用户授权两个表,以下授以完全控制两个表的权限。
代码如下:
grant all on TABLE_A1 to guest_b;
grant all on TABLE_A2 to guest_b;
 
4.       A在NetManager中建立到B数据库服务器的NetServiceName,也可以修改在Oracle的安装目录下的文件\Oracle\network\admin\tnsnames.ora,在里面添加一个NetServiceName,如“TO_B”。
 
5.       创建数据链路名为“GOTO_B”,要使用第四步创建的NetServiceName: TO_B。这里假设了B同样创建了一个账号guest_a/guest_a提供给A使用。
 CREATE PUBLIC DATABASE LINK " GOTO_B "
 CONNECT TO "GUEST_A" IDENTIFIED BY "guest_a" 
 USING ' TO_B ' ;
 
 另提供一个范例,这个例子创建可以不用配置NetServiceName就可以直接创建:
 
-- Drop existing database link
drop database link TOCCIC;
-- Create database link
create database link TOCCIC
   connect to ZTRY identified by ZTRY
   using '(DESCRIPTION =
     (ADDRESS_LIST =
       (ADDRESS = (PROTOCOL = TCP)(HOST = fengwenwei)(PORT = 1521))
     )
     (CONNECT_DATA =
       (SID = ZTRY)
     )
   )';
 
6.       通过创建同义词来访问B的视图数据。注意:使用时要在视图或表前面加上B提供的视图的真正创建者的名称:ADMIN_B,如这里假设B使用账号ADMIN_B创建了两个视图VIEW_B1和VIEW_B2。另外,是通过使用刚才建立的链路GOTO_B来进行连接。这样,就可以在本地直接使用VIEW_B1和VIEW_B2来访问B的两个视图的数据。如果不创建同义词的话,可以使用方法ADMIN_B. VIEW_B1来进行访问。
create synonym VIEW_B1 for ADMIN_B. VIEW_B1@ GOTO_B;
create synonym VIEW_B2 for ADMIN_B. VIEW_B2@ GOTO_B;
 
7.       同样道理,B用户也执行上述类似操作,创建一个用户guest_a/ guest_a_psw,然后授权给两个视图,并建立链路。这样,A与B就可以实现数据互通。
 
三.             小结
 
1.       在创建链路时,如果是使用生成链路代码测试连接不成功的话,请使用Enterprise Manager Console来创建。
2.       在注意两边的账号使用对应,不要搞混。
3.       注意:Oracle中的SERVICE_NAME可以对应多个SID。
4.       注意如果链路建立不成功,请检查Oracle中的参数配置是否正确,如:global_names需要设置为True。Oracle9i安装时默认为False。

posted on 2006-11-07 17:32  冷冰鱼  阅读(1704)  评论(0编辑  收藏  举报