zoukankan      html  css  js  c++  java
  • 创建数据库链路参考文档(转)


     
    说明:创建数据库链路,可以实现两个不同的数据库之间的控制访问。以下用简单的例子说明一下创建数据库链路的步骤:
     一.             实现功能
    主要是实现两台不同机器的两个不同应用的数据交流。假设均使用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。

  • 相关阅读:
    hashlib加密算法
    gc 模块常用函数
    functools函数中的partial函数及wraps函数
    ctime使用及datetime简单使用
    __new__方法理解
    __getattribute__小例子
    == 和 is 的区别
    线程_可能发生的问题
    线程_进程池
    【网站】 简单通用微信QQ跳转浏览器打开代码
  • 原文地址:https://www.cnblogs.com/yamagl/p/553213.html
Copyright © 2011-2022 走看看