Oracle数据库中关于database link_Oracle数据库_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

Oracle数据库中关于database link

作者:黑客防线网安Oracle维护基地 来源:黑客防线网安Oracle维护基地 浏览次数:0

本篇关键词:Oracle数据库Oracle教程
黑客防线网安网讯:     可以通过在A库设置指向B库的database link来直接访问B库的数据语法create [public] database link b_lk connect to userA identified by xxx using 'tnsname'其中,如果省略pu...
     可以通过在A库设置指向B库的database link来直接访问B库的数据
语法
create [public] database link b_lk connect to userA identified by xxx using 'tnsname'
其中如果省略public则创建的是private的连接只能当前所有者可以使用这个link
使用connect to user identified by xxx则所有通过dblink的用户在访问B库时都使用userA这个用户
b_lk指的是database link的名字,如果A库的global_names=true,则这个名字一定要使用B库的global_name.在b库执行select * from global_name可以得到否则建立db link的时候不会报错,但是在执行查询时会报错
ORA-02085: database link b_lk connects to b.world.COM
tnsname指的是A库的tnsnames文件中配置的b库名称
也可以直接使用以下的语句代替
USING '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = b.world.COM)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = b)
)
)';
a库使用dblink访问b库时比如select * from table@b_lk默认会在a库生成一个事务,可以查询v$transaction得到有三种方法来控制这个事务
1.查询后执行rollback或者commit
2.查询后关闭link :alter session close database link b_lk
SQL> alter session close database link b_lk;
ERROR:
ORA-02080: database link is in use
SQL> rollback;
Rollback complete.
SQL> alter session close database link b_lk;
Session altered.
注意:在rollback因为dblink查询产生的事务前,无法关闭dblink。关闭后可以再次执行基于dblink的查询
3.set transaction read only;让事务只读,dblink将不产生事务,但是也限制了同一个session下对本地库的写操作
注意:有了dblink后,可以执行对b库的insert等dml操作,有安全隐患,如何控制只能对b库进行读操作呢?
    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-13118-1.html
网站维护教程更新时间:2012-03-23 00:51:05  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer