存储过程中的分布式数据库的问题,
我在过程中写了这样的代码:
insert into ta -----------本地服务器A上,
select * from tt@B---------- @B 在服务器B上
我看到oracle 的过程中权限 的控制是很严的,
我想问:
在本地服务器上的如上的代码,
要被授予谢什么权限?
或者该注意些什么?

解决方案 »

  1.   

    你本地只需要建立database link。但是该database link所使用的服务器B上的用户(即远程用户),必须对表tt有insert权限。
      

  2.   

    你的意思是如果在pl dev中能执行语句块:
    begin
    insert into ta select * from tt@B;
    end;那么存储过程中就也能这么使用吗?
      

  3.   

    我的意思是直接授权。如果你发现语句里可以,过程不行,那是你对该表的权限是通过角色来实现的。
    显式直接授权。
    grant insert on tt to user_name;
      

  4.   

    你的登录用户具有database link和tt表的插入权限
      

  5.   


    insert into ta select * from tt@B,
    有点疑问,我明明是要insert到ta,怎么是对表tt有insert权限???
    tt是在服务器B上,不在本地啊。
      

  6.   

    数据库用户要有对远程的数据库有DBLINK权限和Select tt表的权限,本地表的ta有Insert的权限,完整了,呵呵