DATABASE_LINK 数据库连接

DB_LINK 介绍
在本机数据库orcl上创建了一个prod_link的public
dblink(使用远程主机的scott用户连接),则用sqlplus连接到本机数据库,执行select * from scott.emp@prod_link
即可以将远程数据库上的scott用户下的emp表中的数据获取到。
也可以在本地建一个同义词来指向scott.emp@prod_link,这样取值就方便多了。


创建前的准备
一、网路互通
二、保证本地可以通过TNS连接到远程数据库的用户
三、保证本地用户有创建db_link的权限

############################################################################################

1、确认用户权限
  --用户里
  select * from user_sys_privs where privilege like upper('%DATABASE LINK%'); 
  --DBA查询
  col grantee for a30
  col PRIVILEGE for a30
  set lines 180 pages 999
  select * from dba_sys_privs where privilege like upper('%DATABASE LINK%');

2、用户授予权限
grant create public database link,create database link to c##user_name;
grant drop public database link to c##user_name;

############################################################################################

1、创建:如果在create之后不加public,则创建的dblink就不是公共的,就只有创建者可以使用。

  ---公有
  create public database link link_name connect to system identified by oracle using 'orcl';
  ---私有
  create database link link_name connect to system identified by oracle using 'orcl';


2、使用
  create table table_name as select * from dba_objects@link_name;  (在表之后增加@连接串)
  
  查询、删除和插入数据和操作本地的数据库是一样的,只不过表名需要写成表名@dblink的名字。

3、删除
  drop  database link link_name;
  drop public database link link_name;

############################################################################################
  
col owner for a15
col db_link for a15
col username for 15
col host for a15
col created for a20
col object_name for a15
set lines 180 pages 999
alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';


查询一
select owner,object_name from dba_objects where object_type='DATABASE LINK';

OWNER        OBJECT_NAME
---------- ---------------
SYS            SYS_HUB
PUBLIC        ORCL_LINK


查询二
select * from dba_db_links;

OWNER        DB_LINK     USERNAME   HOST        CREATED                 HIDDEN
----------  ---------   ---------  ----------  -------------------   ------
SYS            SYS_HUB                SEEDDATA       2017-01-26 14:19:44      NO
PUBLIC        ORCL_LINK    SYSTEM       orcl        2018-08-13 17:55:00      NO
PUBLIC        ORCL1        SYSTEM       orcl        2018-08-13 18:20:40      NO
C##USER1    ORCL2        SYSTEM       orcl        2018-08-13 18:21:52      NO
SYS            ORCL_LINK    SYSTEM       orcl        2018-08-13 18:24:34      NO

你可能感兴趣的:(Oracle)