创建与删除数据库链

如何在同一个网络中,在本数据库上访问另外一台数据库服务器?

解决方法:

可以通过数据库链(DATABASE LINK)对象来建立本地服务器到远程数据库的链接。DatabaseLink指向的数据库不仅仅可以是Oracle,也可以是SQL Server、DB2、Sybase等其他的数据库。数据库链接创建之后,可以使用它来引用远程数据库上的数据库对象。

使用Create Database Link语句可以创建数据库链,语法如下:

CREATE [PUBLIC] DATABASE LINK<数据库链名称>

CONNECT TO

[CURRENT_USER]|[<用户名> IDENTIFIED BY <口令>]

USING<链接字符串>

PUBLIC 可选字符,表示创建公用数据库链,所有用户都能够使用的数据库连,如果不指定,则创建专用数据库链,专用数据库连接只针对创建者,只有创建者可以使用。

CURRENT_USER指定使用当前用户连接到远程数据库上,也可以使用指定的其他用户连接到远程数据库。

USING子句指定远程数据库的连接描述符。

例如,在本机ORCL数据库实例上,创建对远程10.185.3.4上jhqdb实例的访问:

CREATE PUBLIC  DATABASE LINK xasi
CONNECT TO
bjxnb IDENTIFIED BY bjxnb
USING
'(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.185.3.4)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = jhqdb)
    ))';

如果在tnsnames.ora文件中有相应XASI2数据库连接符的描述,也可以通过如下方式创建对远程数据库的访问:

CREATE PUBLIC  DATABASE LINK xasi
CONNECT TO
bjxnb IDENTIFIED BY bjxnb
USING
'xasi2';

可以以使用在表的后面增加@数据库链名称 来访问远程数据库上面的表:

SELECT COUNT(1) FROM AC01@XASI;

可以访问DBA_DB_LINKS试图来查看所有数据库链的信息:

字段名

数据类型

说明

OWNER

VARCHAR2(30)

数据库链的所有者

DB_LINK

VARCHAR2(128)

数据链的名称

USERNAME

VARCHAR2(30)

使用的用户名

HOST

VARCHAR2(2000)

连接描述符

CREATED

DATE

数据库链的创建日期

创建数据库链的用户必须拥有CREATE DATABASE LINK系统权限,创建公用数据库链的用户必须拥有CREATE PUBLIC DATABASE LINK的系统权限。

 

问题:如何删除数据库链(DATABASE LINK)?

解决:

要删除专用数据库链,用户必须为DBA角色或者为该专用数据库链的创建者、所有者。要删除公用数据库链,则必须拥有DROP PUBLIC DATABASE LINK权限:

可以使用DROP DATABASE LINK语句删除数据库链,基本语法如下:

DROP [PUBLIC] DATABASE LINK <数据库链名>

例如,删除数据库连接:

DROP PUBLIC  DATABASE LINK xasi;

你可能感兴趣的:(sql,数据库,server,user,Sybase,database,数据库服务器)