跨本地数据库访问另外一个数据库表中的数据时,本地数据库中必须创建远程数据库的dblink.
以sys用户登录本地数据库,查看dblink的权限.
select * from user_sys_privs t where t.privilege like upper('%link%');
1 SYS CREATE DATABASE LINK NO
2 SYS DROP PUBLIC DATABASE LINK NO
3 SYS CREATE PUBLIC DATABASE LINK NO
注:
CREATE DATABASE LINK(所创建的dblink只能是创建者能使用,别的用户使用不了.)
CREATE PUBLIC DATABASE LINK(public表示所创建的dblink所有用户都可以使用.)
DROP PUBLIC DATABASE LINK(删除数据库的dblink)
创建dblink之前用户必须有创建dblink的权限.
grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to scott;
在本地数据库E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora文件中配置要远程访问的数据库.
以scott用户登录本地数据库
create public database link to_scott connect to scott identified by tiger using 'scott';
link to_scott: dblink名称
connect to: 远程数据库用户名
identified by: 远程数据库密码
using: 远程数据库实例名
select * from scott.EMP@to_scott;
以sys用户登录本地数据库,查看dblink的权限.
select * from user_sys_privs t where t.privilege like upper('%link%');
1 SYS CREATE DATABASE LINK NO
2 SYS DROP PUBLIC DATABASE LINK NO
3 SYS CREATE PUBLIC DATABASE LINK NO
注:
CREATE DATABASE LINK(所创建的dblink只能是创建者能使用,别的用户使用不了.)
CREATE PUBLIC DATABASE LINK(public表示所创建的dblink所有用户都可以使用.)
DROP PUBLIC DATABASE LINK(删除数据库的dblink)
创建dblink之前用户必须有创建dblink的权限.
grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to scott;
在本地数据库E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora文件中配置要远程访问的数据库.
以scott用户登录本地数据库
create public database link to_scott connect to scott identified by tiger using 'scott';
link to_scott: dblink名称
connect to: 远程数据库用户名
identified by: 远程数据库密码
using: 远程数据库实例名
select * from scott.EMP@to_scott;