oracle 创建dblink

查看数据库全局名称:
SELECT * FROM GLOBAL_NAME;

修改可以用以下语句来修改参数值:
ALTER SYSTEM SET GLOBAL_NAME=TRUE/FALSE;

查看global_name参数
SQL> show parameter global_name

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
global_names                         boolean     FALSE

当数据库参数global_name=true时,要求数据库链接名称跟远端数据库全局名称一样.
两个同名的数据库间不得建立dblink;
当数据库参数global_name=false时,就不要求数据库链接名称跟远端数据库名称一样。

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

USERNAME                       PRIVILEGE                                ADM
------------------------------ ---------------------------------------- ---
SYS                            CREATE DATABASE LINK                     NO
SYS                            DROP PUBLIC DATABASE LINK                NO
SYS                            CREATE PUBLIC DATABASE LINK              NO

可以看出在数据库中dblink有三种权限
CREATE DATABASE LINK            (所创建的dblink只能是创建者能使用,别的用户使用不了)
CREATE PUBLIC DATABASE LINK     (public表示所创建的dblink所有用户都可以使用)
DROP PUBLIC DATABASE LINK。

创建数据库链接的帐号必须有CREATE DATABASE LINK或CREATE PUBLIC DATABASE LINK的系统权限,用来登录到远程数据库的帐号必须有CREATE SESSION权限
这两种权限都包含在CONNECT角色中(CREATE PUBLIC DATABASE LINK权限在DBA中)。 

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

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

然后以scott用户登录本地数据库
1.创建dblink的第一种方式,是在本地数据库tnsnames.ora文件中配置了要远程访问的数据库。
在tnsnames.ora文件中添加以下:
ORCL=
  (DESCRIPTION = 
    (ADDRESS_LIST = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.25)(PORT = 1521)))
  (CONNECT_DATA = (SERVICE_NAME = orcl)
  )
  )

SQL > create (public) database link dblink_1 connect to scott identified by tiger using 'orcl';

其中dblink_1是你创建的dblink名字,当数据库参数global_name=true时,要求数据库链接名称跟远端数据库全局(SELECT * FROM GLOBAL_NAME;)名称一样.
orcl是远程数据库的实例名,scott/tiger是登录到远程数据库的用户/密码。

然后在本地数据库中通过dblink访问远程数据库'orcl'中scott.emp表,sql语句如下所示
select * from scott.emp@dblink_1;

2.创建dblink的第二种方式,是在本地数据库tnsnames.ora文件中没有配置要访问的远程数据库
create database link orcl connect to ceshi2 identified by ceshi2 using '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.25)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = orcl)))';

第二种是把第一种配置在tnsnames.ora文件中的信息,直接放在创建dblink语句后面。

查看所有的数据库链接,进入系统管理员SQL>操作符下,运行命令: 
SQL>select owner,object_name from dba_objects where object_type='DATABASE LINK';
SQL> select * from ALL_DB_LINKS;
删除数据库链接的语句是: 
DROP [PUBLIC] DATABASE LINK dblink_1; 

使用plsql developer创建dblink

 

参考:http://blog.chinaunix.net/uid-261392-id-2138968.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值