Oracle11g数据库创建dblink介绍

Oracle11g数据库创建dblink介绍

  • 什么是Dblink
  • 本地数据库用户Dblink权限
    • 查看 dblink 列表
    • 查看用户是否有 DBlink 权限
    • sysdba授权用户 DBlink 权限
  • 远程数据库用户权限
  • 查询Dblink
  • 创建Dblink
  • 使用Dblink
  • 删除dblink

什么是Dblink

dblink(Database Link)数据库链接顾名思义就是数据库的链接 ,是一个通道,当我们要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中就必须要创建远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。
可以实现1.两个数据库中的多表关联查询,相当于一个事物。2.可以通过本地数据库dblink访问其他数据库,对于应用程序不必关心远程数据库的来凝结。
本人演示:本地数据库 dblink 链接到运程数据库。

本地数据库用户Dblink权限

查看 dblink 列表

    select * from dba_db_links;

查看用户是否有 DBlink 权限

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

权限介绍
DROP PUBLIC DATABASE LINK 删除公共的dblink权限
CREATE DATABASE LINK 创建只有自己用的dblink权限
CREATE PUBLIC DATABASE LINK 创建公共的dblink权限

sysdba授权用户 DBlink 权限

可以根据需要grant三个权限

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

远程数据库用户权限

用户:scott 密码:tiger 用户权限:CONNECT

系统权限分类:
DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。
RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。
CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。
对于普通用户:授予connect, resource权限。
对于DBA管理用户:授予connect,resource, dba权限。

远程数据库用户必须拥有connect权限

grant connect to JSSALE with admin option;

查询Dblink

select owner,object_name from dba_objects where object_type='DATABASE LINK';
  或者
select * from dba_db_links;

创建Dblink

语法:

create database link link_name   
connect to username identified by password   
using ‘(DESCRIPTION =   
(ADDRESS_LIST =   
(ADDRESS = (PROTOCOL = TCP)(HOST = X.X.X.X )(PORT = 1521))   
) (CONNECT_DATA =   
(SERVICE_NAME = SSID)   
)   
)’;   
host=数据库的ip地址,service_name=数据库的ssid。

-- Create database link 
create public database link link_emp
  connect to SCOTT
  using '(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.153)(PORT = 1521))
(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl))
 )';

使用Dblink

语法:select * from [user.]table@link_name

select * from scott.emp@link_emp;

删除dblink

语法:DROP PUBLIC DATABASE LINK link_name;

DROP PUBLIC DATABASE LINK link_emp;

你可能感兴趣的:(oracle学习总结)