- 论坛徽章:
- 0
|
今天创建一个物化视图来同步刷新某一个表,创建不成功:
环境,2个数据库test1和test2
test1上创建了用户user1/user1,user2/user2,user1对user2下的表都有全部权限。
test2上创建了用户user1/user1
test1作为主系统,
test2上需要创建一个物化视图实时同步test1某些表
在test1的user2下创建表t1
create table t1(id number,name varchar2(10));
在test2用user1登录创建db-link
create public database link to_test1
using 'tnsname';
测试db-link是否连通
select * from global_name@to_test1;
结果是连通的
select * from user2.t1@to_test1;
也可查询;
以下创建物化视图:
create materialized view mv_t1
build immediate
on commit
as
select * from user2.t1@to_test1;
提示,issuf privilege,没权限,单独执行
select * from user2.t1@to_test1;没问题
不明白缺少什么权限,请大家指点下。
由于这里用到db-link,又令我想起以前我曾经问过一个问题,但好象没有得到解答,这里再提及一下,望知道的朋友告知:
创建db-link有3个鉴别方式:
1,直接使用用户名/密码创建
create public database link
link_name
connect to user2 identified by user2
using 'tnsnames';
这种方式比较好理解
2,使用登录的当前用户
create public database link to_test1
using 'tnsname';
此方法为我上面所使用的方法,例如使用user1/user1登录test2,使用该db-link需要在
test1上也存在相同用户名/密码的用户
3,使用current_user
create public database link link2
connect to current_user
using 'tnsname';
照字面理解,似乎和2差不多,使用当前用户?
就3不理解是怎么连的,测试创建了3后,直接使用当前用户类似于2的方式连
select * from user2.t1@link2;
提示ora-28030:不能访问LADP SERVICE,不明白是什么
希望清楚3 的连接方式的可以回复下,万分感谢! |
|