下面简单地介绍一个创建DBLINK的语句及其两个库中的两个用户所需要的权限:
直接开门见山的说一下
下面有两个oracle数据库,分别为 : A库、 B库;
分别对应的用户为:USER_A、 USER_B两个用户;
下边我们建一个从A库到B的DBLINK,从A库中的USER_A用户连接到B库中USER_B用户,创建的时候需要有一些权限的准备;
权限设置:A库中的USER_A用户必须有创建DBLINK的权限,对应的权限名为CREATE DATABASE LINK ;
B库中的USER_B必须有创建会话的权限,对应的权限名为 CREAE SESSION,如果没有则即使DBLINK创建了也无法访问B库
说明:
可以从DBA_SYS_PRIVS视图中根据用户名查询相应用户下的所有权限
A库中USER_A用户所能看到B库中的什么东西取决于B库中USER_B用户所拥有的权限
创建语句:
CREATE DATABASE LINK TEST_LINK
CONNECT TO USER_B IDENTFIED BY USER_B_PASSWD
USING '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORACLE)
))'
注释:
TEST_LINK :需要创建的DBLINK名
USER_B :B库下的用户
USER_B_PASSWD : B库下用户的密码
USING:后跟的一段字符串是B库的配置连接字符串;
假设B库中有一张表 AA表,在A库中USER_A用户下查询
SELECT * FROM USER_B.AA@TEST_LINK;
备注:
如有问题请各位大神指正;