本地库有两个1、dev库 , 2、crux库
想通过配置dblink来实现dev库用户sifc_dev 来访问crux库用户cwy_demo
第一步:赋予权限
在创建database link之前,我们需要判断,登陆的用户是否具备创建database link 的权限,所以我们执行以下的语句(用sifc_dev 用户登陆dev):
-- 查看sifc_dev 用户是否具备创建database link 权限 select * from user_sys_privs where privilege like upper('%DATABASE LINK%') AND USERNAME='sifc_dev';
如果查询有返回行,则表示具备创建database link权限,否则,则需要使用sys登陆dev为sifc_dev用户赋予创建权限
-- 给sifc_dev用户授予创建dblink的权限 grant create public database link to sifc_dev;
此时,再执行上面查看是否具备权限的sql语句,会发现有返回行,表示,sifc_dev这个用户已经具备创建database link的权限
第二步;创建database link
创建方式有两种:
1)通过pl/sql developer图形化创建、
2)通过sqlplus中的sql语句创建
下面具体介绍一下通过sql语句来创建
sql语句创建
-- 注意一点,如果密码是数字开头,用“”括起来
create public database link TESTLINK1 connect to cwy_demo identified by "1" USING 'crux'
create public database link TESTLINK1 connect to user identified by password USING 'databasename '
这样,就完成了简单database简单的创建 ,注意里面的数据库名和用户都是需要dblink到目标的库相关用户名和密码
第三步:操作
首先,我们需要在crux库中新建一张表 (ACCOUNT_INFO),并插入部分数据,如下图:
现在,我们通过database link 在dev中访问这张属于crux库中cwy_demo的表ACCOUNT_INFO
select * from ACCOUNT_INFO@TESTLINK1
从截图中可以看到,在dev中可以成功访问到crux中用户cwy_demo的表
可以利用同样的方式,进行插入,修改,删除操作。