oracle dblink 是干嘛的:比如现在有俩个数据库,都是单独的,如果我们现在登陆当前数据库,想访问另一个数据库,如果我们建了DBLINK我们就可以直接在当前数据库取访问另一个数据库。 如select * from user@xx这样我们就可以直接访问另一个数据库的user表@steven
database link概述
database link是定义一个数据库到另一个数据库的路径的对象,database link允许你查询远程表及执行远程程序。在任何分布式环境里,database都是必要的。另外要注意的是database link是单向的连接。
在创建database link的时候,Oracle再数据字典中保存相关的database link的信息,在使用database link的时候,Oracle通过Oracle Net用用户预先定义好的连接信息访问相应的远程数据库以完成相应的工作。
建立database link之前需要确认的事项:
确认从local database到remote database的网络连接是正常的,tnsping要能成功。
确认在remote database上面有相应的访问权限。
database link分类
类型 | Owner | 描述 |
---|---|---|
Private | 创建database link的user拥有该database link | 在本地数据库的特定的schema下建立的database link。只有建立该database link的schema的session能使用这个database link来访问远程的数据库。同时也只有Owner能删除它自己的private database link。 |
Public | Owner是PUBLIC. | Public的database link是数据库级的,本地数据库中所有的拥有数据库访问权限的用户或pl/sql程序都能使用此database link来访问相应的远程数据库。 |
Global | Owner是PUBLIC. | Global的database link是网络级的,When an Oracle network uses a directory server, the directory server automatically create and manages global database links (as net service names) for every Oracle Database in the network. Users and PL/SQL subprograms in any database can use a global link to access objects in the corresponding remote database. Note: In earlier releases of Oracle Database, a global database link referred to a database link that was registered with an Oracle Names server. The use of an Oracle Names server has been deprecated. In this document, global database links refer to the use of net service names from the directory server. |
创建dblink所需的权限
Privilege | Database | Required For |
---|---|---|
CREATE DATABASE LINK |
Local | Creation of a private database link. |
CREATE PUBLIC DATABASE LINK |
Local | Creation of a public database link. |
CREATE SESSION |
Remote | Creation of any type of database link. |
database link的使用
基本语法
CREATE [SHARED][PUBLIC] database link link_name
[CONNECT TO [user][current_user] IDENTIFIED BY password]
[AUTHENTICATED BY user IDENTIFIED BY password]
&n