oracle创建dblink详细步骤

来源:互联网 发布:算法第四版高清pdf 编辑:程序博客网 时间:2024/04/30 21:46

1.现有2台机器上的oracle数据库

  a.ip是41的机上有用户为wmtest的数据库

  b.ip是39的机上有用户为bpo的数据库

  现在要使wmtest访问bpo下面的staff表,步骤如下:

 (1)首先在41数据库下面的tnsnames.ora(这个文件在$ORACLE_HOME/network/admin/tnsnames.ora)文件中加入以下内容

 testserver =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 172.29.29.39)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

 

 (2)确定wmtest有相关的权限

 select * from user_sys_privs t  where t.privilege like upper('%link%');
 查询结果集 :
  SYS CREATE DATABASE LINK NO
  SYS DROP PUBLIC DATABASE LINK NO
  SYS CREATE PUBLIC DATABASE LINK NO
  可以看出在数据库中dblink有三种权限:
        CREATE DATABASE LINK(所创建的dblink只能是创建者能使用,别的用户使用不了) ,
  CREATE PUBLIC DATABASE LINK(public表示所创建的dblink所有用户都可以使用),
  DROP PUBLIC DATABASE LINK。
  在sys用户下,把CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASELINK权限授予给你的用户:

        grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to wmtest;

 

(3)创建dblink

     create public database link aaa --(dblink名称)

connect to bpo--(39数据库用户名) identified by bpo --(39数据库用户密码)

using 'testserver';

或者:

  create database link aaa connect to bpo identified by bpo 
using '(DESCRIPTION =(ADDRESS_LIST =     
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.29.29.39)(PORT = 1521))   
(LOAD_BALANCE = off)
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )';

(4)测试连接

   select * from staff@aaa;这样就可以在41的用户wmtest上访问39用户bpo下面的staff表了~~!

(5)删除dblink

  DROP PUBLIC DATABASE LINK aaa;--(link_name dblink名称) 

  

0 0