关于dblink的使用

article/2025/9/13 9:04:32

文章目录

  • 前言
  • 一、基本信息
  • 二、dblink的类型及拥有者
  • 三、dblink创建所需权限
  • 四、基本语法
    • 创建dblink
    • dblink查询
    • dblink删除
    • dblink使用
  • 五、实例


前言

dblink(Database Link)数据库链接顾名思义就是数据库的链接 ,就像电话线一样,是一个通道,当我们要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中就必须要创建远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。

一、基本信息

  • 创建dblink语法
CREATE [SHARED] [PUBLIC] database link link_name[CONNECT TO [user] [current_user] IDENTIFIED BY [password] [AUTHENTICATED BY user IDENTIFIED BY password] [USING 'connect_string']
  • 说明
  1. 权限:创建数据库链接的帐号必须有CREATE DATABASE LINK或CREATE PUBLIC DATABASE LINK的系统权限,用来登录到远程数据库的帐号必须有CREATE SESSION权限。这两种权限都包含在CONNECT角色中(CREATE PUBLIC DATABASE LINK权限在DBA中)。一个公用数据库链接对于数据库中的所有用户都是可用的,而一个私有链接仅对创建它的用户可用。由一个用户给另外一个用户授权私 有数据库链接是不可能的,一个数据库链接要么是公用的,要么是私有的。
  2. link : 当source端的参数(parameter)GLOBAL_NAMES=TRUE时,link名必须与远程数据库的全局数据库名global_name)相同;否则,可以任意命名。
  3. current_user使用该选项是为了创建global类型的dblink。在分布式体系中存在多个数据库的话。如果想要在每一个数据库中都可以使用同样的名字来访问数据库a,那在每个数据库中都要创建一个到数据库a的db_link,太麻烦了。所以有这个选项的话你只要创建一次。所有的数据库都可以使用这个db_link来访问了。要使用这个特性,必须有oracle nameserver或者ORACLE目录服务器。并且数据库a的参数global_names=true.具体我也没有创建过,没有这个环境。
  4. connectstring:连接字符串,tnsnames.ora中定义远程数据库的连接串,也可以在创建dblink的时候直接指定。
  5. username、password:远程数据库的用户名,口令。如果不指定,则使用当前的用户名和口令登录到远程数据库,当创建connected user类型的dblink时,需要如果采用数据字典验证,则需要两边数据库的用户名密码一致。

二、dblink的类型及拥有者

类型Owner描述
Private创建dblink的user拥有该dblink在本地数据库的特定的schema下建立的databaselink。只有建立该databaselink的schema的session能使用这个databaselink来访问远程的数据库。同时也只有Owner能删除它自己的privatedatabaselink。
PublicOwner是PUBLIC.Public的databaselink是数据库级的,本地数据库中所有的拥有数据库访问权限的用户或pl/sql程序都能使用此databaselink来访问相应的远程数据库。
GlobalOwner是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创建所需权限

PrivilegeDatabaseRequired For
CREATE DATABASE LINKLocalCreation of a privase database link.
CREATE PUBLIC DATABASE LINKLocalCreation of a public database link.
CREATE SESSIONRemoteCreation of any type of database link.

四、基本语法

创建dblink

创建dblink一般有两种方式 ,不过在创建dblink之前用户必须有创建dblink的权限。想知道有关dblink的权限,以sys用户登录到本地数据库:
select * from user_sys_privs t
  where t.privilege like upper(‘%link%’);
查询结果集 :

  1. SYS CREATE DATABASE LINK NO
  2. SYS DROP PUBLIC DATABASE LINK NO
  3. SYS CREATE PUBLIC DATABASE LINK NO

可以看出在数据库中dblink有三种权限:

  1. CREATE DATABASE LINK(所创建的dblink只能是创建者能使用,别的用户使用不了)
  2. CREATE PUBLIC DATABASE LINK(public表示所创建的dblink所有用户都可以使用)
  3. DROP PUBLIC DATABASE LINK

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

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

然后以scott用户登录本地数据库

  1. 已经配置本地服务
    create public database link link_name connect to username identified by password using ‘connect_string’;

link_name是连接名字,可以自定义;

username是登陆数据库的用户名;

password是登陆数据库的用户密码;

connect_string是数据库连接字符串。

数据库连接字符串是当前客户端数据库中TNSNAMES.ORA文件里定义的别名名称.可以用NET8 EASY CONFIG或者直接修改TNSNAMES.ORA里定义.

  1. 直接建立链接
    create database link link_name connect to username identified by password using ‘(DESCRIPTION = (ADDRESS_LIST = ) (CONNECT_DATA = (SERVICE_NAME = SSID) ) )’;

host=数据库的ip地址,service_name=数据库的ssid。

其实两种方法配置dblink是差不多的,个人感觉还是第二种方法比较好,这样不受本地服务的影响。

注意: 假如创建全局dblink,则必须使用systm或sys用户,在database前加public。

dblink查询

查看所有的数据库链接,进入系统管理员SQL>操作符下,运行命令:

SQL>select owner,object_name from dba_objects where object_type=‘DATABASE LINK’;
  或者
select * from dba_db_links;

dblink删除

DROP PUBLIC DATABASE LINK link_name;

dblink使用

SELECT……FROM 表名@数据库链接名;
查询、删除和插入数据和操作本地的数据库是一样的,只不过表名需要写成“表名@dblink服务器”而已。

五、实例

select * from dba_db_links //查看dblink链接信息create public database link ORCLGX connect to dev  identified by "123456" USING '192.168.101.117:1521/ORCLGX' //创建dblink链接drop public database link  ORCLGX //删除dblink链接SELECT * from T_USER_ROLE@ORCLGX //查询语句

资料来源:百度百科


在这里插入图片描述


http://chatgpt.dhexx.cn/article/U3vyPsTx.shtml

相关文章

DM-DM DBLINK使用配置

简单介绍 DM-DM DBLINK支持3种连接方式创建,分别是:dmmal、dpi、odbc。 其中dpi、odbc属于第三方接口,dmmal属于原生接口。dpi类型dblink为新版本新添加支持,以前版本中不支持。 环境说明 (1)数据库版本…

达梦DBLINK之DM访问Oracle问题处理

达梦DBLINK之DM访问Oracle配置步骤 下面所有的问题基本上都是在使用ODBC的方式创建DBLINK时遇到,所以强烈建议DM访问Oracle的DBLINK创建时采用Oracle OCI来进行访问。 强烈建议使用Oracle OCI的方式创建DBLINK 强烈建议使用Oracle OCI的方式创建DBLINK 强烈建议使用…

linux oracle dblink,Oracle dblink配置

一. dBlink 简述 dblink(Database Link)数据库链接顾名思义就是数据库的链接,就像电话线一样,是一个通道,当我们要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中就必须要创建远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库…

DBlink 初级使用文档

DBlink 初级使用文档 提示:本文主要帮助新手讲解DBlink的基础用法 文章目录 DBlink 初级使用文档前言一句话解释DBlink是干啥用的 一、DBlink的分类二、DBlink的使用1.使用前查看权限2.创建DBlink3.简单的跨库使用 总结 前言 一句话解释DBlink是干啥用的 实现跨库…

oracle----dblink知识详解

一. dblink定义 dblink(Database Link)数据库链接顾名思义就是数据库的链接,当我们要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中就必须要创建远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样…

DBlink

DBlink 文章目录 DBlink一、dblink是什么?二、Oracle数据库建立dblink1.语句方式2.PL/SQL developer图形界面化方式 三、查看是否成功建立dblink 一、dblink是什么? 个人理解:dblink在一个数据库中访问另一个数据库建立起来的通道。 二、Or…

Oracle dblink详解

Oracle dblink详解 概述 1、database link是定义一个数据库到另一个数据库的路径的对象,database link允许你查询远程表及执行远程程序。在任何分布式环境里,database都是必要的。另外要注意的是database link是单向的连接。 2、在创建database link的…

Web应用快速开发平台 WebBuilder 8.6 企业版发布

WebBuilder是一款强大的企业级Web应用快速开发平台,使用WebBuilder可以快速开发出强大而高效的跨平台的常规应用和移动应用系统。 WebBuilder官网:http://www.geejing.com 社区:http://www.putdb.com/ 版本更新记录 2019-06-21 发布 V8.6 …

使用Eclipse来开发调试WebBuilder项目

使用Eclipse来开发调试WebBuilder项目 下载,安装Groovy插件: 下载地址: Groovy-Eclipse 下载,安装Tomcat插件: 下载地址: Tomca-Eclipse 打开Eclipse,配置Tomcat插件,如下图所示: 新建一个Java Project项目 ​ 命名为WB8,然后在项目的右键菜单里,添加Groovy支持!如下图所示: 打…

Web软件快速开发平台WebBuilder V8.7.1发布

WebBuilder是一款强大,全面和高效的应用开发和运行平台。基于浏览器的集成开发环境,可视化和智能化的设计,能轻松完成常规应用和面向手机的移动应用开发。高效、稳定和可扩展的特点,适合复杂企业级应用的运行。跨平台、数据库和浏…

快速开发平台 WebBuilder 8.4 发布

WebBuilder是一款强大,全面和高效的应用开发和运行平台。基于浏览器的集成开发环境,可视化和智能化的设计,能轻松完成常规应用和面向手机的移动应用开发。高效、稳定和可扩展的特点,适合复杂企业级应用的运行。跨平台、数据库和浏…

Web软件快速开发平台 WebBuilder 8.7 发布

WebBuilder是一款强大,全面和高效的应用开发和运行平台。基于浏览器的集成开发环境,可视化和智能化的设计,能轻松完成常规应用和面向手机的移动应用开发。高效、稳定和可扩展的特点,适合复杂企业级应用的运行。跨平台、数据库和浏…

WebBuilder的下载以及实现连接Oracle数据

WebBuilder的下载网上有许多就不说了。 首先解压压缩包当中的wb文件到Tomcat的webapp当中去如图: 将压缩包中的wb文件解压到Tomcat中 打开wb问价夹创建一个META-INF文件夹 在meta-inf文件夹当中创建一个context.xml文件 context.xml文件党总的内容为: <?xml version"…

webbuilder连接mysql_Webbuilder学习指导书.doc

您所在位置&#xff1a;网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspWeb服务 Webbuilder学习指导书.doc60页 本文档一共被下载&#xff1a;次,您可全文免费在线阅读后下载本文档。 下载提示 1.本站不保证该用户上传的文档完整性&#xff0c;不…

005-WebBuilder使用结构元素进行网页布局

这个太零散了直接在代码上写的注释&#xff0c;第一份前端代码 <!DOCTYPE html> <html> <!--文档基本结构--><head><!--设置section或者page的页眉--><meta charset"utf-8" /><!--meta网页元信息--><title>业务种类…

Webbuilder取值记录

一、从module.serverScript页面返回数据方法&#xff1a; 在B 的dataprovider中写SQL语句&#xff0c;也可以直接在serverScript中写&#xff0c;如果在serverScript中写的话&#xff0c;应该是必须进行app.send();一下&#xff0c;&#xff08;我也没试不send能不能接收&#…

003-Webbuilder应用HTML表单

HTML和控件的混合编程 通常普通的表单界面使用UI控件来构建&#xff0c;对于复杂的界面也可以使用HTML来直接构建&#xff0c;WebBuilder中提供特定的语法可以把相关的控件比如日期控件插入到指定的DOM位置。HTML和控件的混合编程一方面可以使界面的构建更加灵活&#xff0c;另…

004-webbuilder所有布局

viewport viewport表示整个页面的显示视口&#xff0c;他把页面渲染到浏览器的body中&#xff0c;他的大小等于浏览器body的大小,如果整个页面需要占据整个浏览器body(全屏显示)&#xff0c;可以使用该控件作为顶层控件。大部分需要在浏览器中显示的模块通常都会使用viewport作…

001-WebBuilder安装和部署

运行环境 WebBuilder是一款通用平台&#xff0c;但是我们用windows 操作系统&#xff1a;win10JDK环境&#xff1a;1.8服务器&#xff1a;tomcat数据库&#xff1a;SqlServer浏览器&#xff1a;Chrome移动设备&#xff1a;安卓 安装WebBuilder 通常只要复制WebBuilder应用目…

WebBuilder开发笔记

WebBuilder开发笔记记录 基础知识 WebBuilder快捷键 控件配置 双击左侧控件箱中的控件将打开该控件&#xff0c;控件编辑器由General、Configs和Events 3个标签页组成&#xff0c;分别代表控件的常规属性、配置项属性和事件。 General标签页&#xff1a; autoCreate&#xff…