执行由不同用户通过dblink创建的存储过程

时间:2012-09-12 00:10:21

标签: dblink

我在数据库 A 中创建了一个存储过程 PROCA ,用户 USERA 并给出了 执行 USERB 的权限,我可以在用USERB登录时在数据库A中执行此存储过程。

现在我登录数据库 X 并创建了一个dblink Akink ,这个dblink连接到 数据库A与用户USERB。现在,当我使用以下语法执行存储过程时, 它执行没有任何错误,但无论存储过程中的DML操作是什么, 不承诺。

从Databse X调用存储过程的代码

declare

begin

   USERA.PROCA@Alink();

   COMMIT;

end;

请提出可能存在的问题。

1 个答案:

答案 0 :(得分:0)

对于这种情况似乎没有好的解决方案 但这是对你的建议;试着用这个:

Exec dbms_utility.exec_ddl_statement@db_link('some ddl sql statment');

例如:

Exec dbms_utility.exec_ddl_statement@db_link('truncate table test_tab');