梦幻之旅

DEBUG - 天道酬勤

   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  671 随笔 :: 6 文章 :: 256 评论 :: 0 Trackbacks

      当用户要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中必须创建了远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。下面讲介绍如何在本地数据库中创建dblink.

  创建dblink一般有两种方式,不过在创建dblink之前用户必须有创建dblink的权限。想知道有关dblink的权限,以sys用户登录到本地数据库:   

select * from user_sys_privs t where t.privilege like upper('%link%');

     结果如下:
   
  可以看出在数据库中dblink有三种权限:
      1).CREATE DATABASE LINK(所创建的dblink只能是创建者能使用,别的用户使用不了)
      2).CREATE PUBLIC DATABASE LINK(public表示所创建的dblink所有用户都可以使用)
      3).DROP PUBLIC DATABASE LINK

  在sys用户下,把CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK权限授予给你的用户

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


  然后以scott用户登录本地数据库

  1.创建dblink的第一种方式,是在本地数据库tnsnames.ora文件中配置了要远程访问的数据库。

create public database link to_bylw connect to scott identified by tiger using 'bylw';


  其中to_bylw是你创建的dblink名字,bylw是远程数据库的实例名,scott/tiger是登录到远程数据库的用户/密码。然后在本地数据库中通过dblink访问远程数据库'bylw'中scott.tb_test表,sql语句如下所示

select * from scott.tb_test@to_bylw;

 

  2.创建dblink的第二种方式,是在本地数据库tnsnames.ora文件中没有配置要访问的远程数据库,

create database link link_em
   connect 
to mydata identified by mydata##
   using 
'(DESCRIPTION =
              (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.139)(PORT = 1521))
              (CONNECT_DATA =
                 (SERVER = DEDICATED)
                 (SERVICE_NAME = ORCL)
               )
             )
';
   个人比较喜欢第二种创建方式.
posted on 2011-08-16 09:47 HUIKK 阅读(206) 评论(0)  编辑  收藏 所属分类: DataBase

只有注册用户登录后才能发表评论。


网站导航: