• ORACLE中的DBLINK概念及使用DBLINK对远程数据库的连接


    database link概述

    database link是定义一个数据库到另一个数据库的路径的对象,database link允许你查询远程表及执行远程程序。

    database link分类

    1.Private

    Owner:创建database link的user拥有该database link

    描述:在本地数据库的特定的schema下建立的database link。只有建立该database link的schema的session能使用这个database link来访问远程的数据库。

    同时也只有Owner能删除它自己的private database link。

    2.Public

    Owner:PUBLIC

    描述:Public的database link是数据库级的,本地数据库中所有的拥有数据库访问权限的用户或pl/sql程序都能使用此database link来访问相应的远程数据库

    3.Global

    Owner:PUBLIC

    描述:Global的database link是网络级的,当Oracle网络使用目录服务器时,目录服务器会自动为网络中的每个Oracle数据库创建和管理Global database link(作为网络服务名)。

    任何数据库中的用户和pl/sql子程序都可以使用全局链接访问相应的远程数据库中的对象。

    注意:在Oracle数据库的早期版本中,一个Global database link引用了一个database link,该链接是在Oracle名称服务器上注册的。

    Oracle名称服务器的使用已经被弃用。在这个文档中,全局数据库链接指的是来自目录服务器的网络服务名的使用。

    创建dblink所需的权限

    CREATEDATABASE LINK 本地数据库 创建一个私有的DBLink

    CREATEPUBLIC DATABASE LINK 本地数据库 创建一个共有的DBLink

    CREATESESSION 远程数据库 创建一个任意类型的DBLink

    database link创建语法

    CREATE [SHARED][PUBLIC] database link link_name

    [CONNECT TO [user][current_user] IDENTIFIED BY password]

    [AUTHENTICATED BY user IDENTIFIED BY password]

    [USING 'connect_string']

    简要说明:

    connectstring:连接字符串,tnsnames.ora中定义远程数据库的连接串,也可以在创建dblink的时候直接指定。

    username、password:远程数据库的用户名,口令。如果不指定,则使用当前的用户名和口令登录到远程数据库

    使用实例:

    创建私有的DBLink

    create database link dblink_name 
    connect to username identified by "password" 
    using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)
    (HOST = 192.168.1.18 )(PORT = 1521)))
    (CONNECT_DATA = (SERVICE_NAME = orcl)))';

    创建公共的DBLink

    create public database link dblink_name 
    connect to username identified by "password" 
    using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)
    (HOST = 192.168.1.18 )(PORT = 1521)))
    (CONNECT_DATA = (SERVICE_NAME = orcl)))';

    database link的使用

    最简单的用法

    SELECT* FROM table_name@dblink_name;

    包装dblink_name名称

    CREATE SYNONYM table_name FOR table_name@dblink_name;

    SELECT * FROM table_name;

    建立一个视图来封装

    CREATE VIEW table_name AS SELECT * FROM table_name@dblink_name;

    database link删除

    删除public类型的database link

    DROP PUBLIC database link dblink_name;

    删除非public类型的database link

    注意:只有owner自己能删除自己的非public类型database link

    DROP database link dblink_name;

    查询database link

    select * from dba_db_links;

     

    原文链接:https://blog.csdn.net/naruto0025/article/details/79075041?utm_source=blogxgwz9

  • 相关阅读:
    vb6 控件未注册问题解决
    Collection of algorithm for sorting. 常见排序算法集(二)
    Unity中uGUI的多分辨率处理
    大型站点技术架构PDF阅读笔记(一):
    GTK入门学习:glade的介绍
    java io (java输入输出流)具体解释
    python类的继承
    Python基础二--基本控制语句
    restlet Framework2.2和2.3版本号的对照
    crm创建团队设置团队的业务部门
  • 原文地址:https://www.cnblogs.com/isme-zjh/p/13602533.html
Copyright © 2020-2023  润新知