Oracle 使用DBLike进行数据库的控数据库读取

当用户要跨本地数据库,访问另一个数据库表中的数据时,本地数据库中必须建立了远程数据库的dblink,经过dblink本地数据库能够像访问本地数据库同样访问远程数据库表中的数据。下面讲介绍如何在本地数据库中建立dblink.sql

  建立dblink通常有两种方式,不过在建立dblink以前用户必须有建立dblink的权限。想知道有关dblink的权限,以sys用户登陆到本地数据库:数据库

  select * from user_sys_privs toracle

  where t.privilege like upper('%link%');ide

  1 SYS CREATE DATABASE LINK NO测试

  2 SYS DROP PUBLIC DATABASE LINK NOget

  3 SYS CREATE PUBLIC DATABASE LINK NOtest

  能够看出在数据库中dblink有三种权限CREATE DATABASE LINK(所建立的dblink只能是建立者能使用,别的用户使用不了),CREATE PUBLIC DATABASE LINK(public表示所建立的dblink全部用户均可以使用),DROP PUBLIC DATABASE LINK。登录

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

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

  而后以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 to_test

  connect to scott identified by tiger

  using '(DESCRIPTION =

  (ADDRESS_LIST =

  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.5)(PORT = 1521))

  )

  (CONNECT_DATA =

  (SERVER = DEDICATED)

  (SERVICE_NAME = bylw)

  )

  )';

  第二种是把第一种配置在tnsnames.ora文件中的信息,直接放在建立dblink语句后面。第一种状况tnsnames.ora文件中信息以下:

  bylw =

  (DESCRIPTION =

  (ADDRESS_LIST =

  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.5)(PORT = 1521))

  )

  (CONNECT_DATA =

  (SERVER = DEDICATED)

  (SERVICE_NAME = bylw)

  )

  )

在实际应用中,使用第二种方式比多,同时结合oracle的同义词进行数据库的处理

首先建立db like:

  create  database  link db
  connect to user1 identified by user1
 
  using '(DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.5)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = devdb)
    )
  )';
测试:  select * from a@db

建立同义词:   create public synonym a for a@db

测试:select * from a

相关文章
相关标签/搜索