我有两个架构。
1.Schema A
2.Schema B
我需要做以下事。
现在我想从架构 A 中完成所有这些操作。我编写了一个包,在 A 中执行时会创建 B 中的所有表格,然后创建同义词他们在 A 。然后只需从自己的表中选择数据并插入 B的 表。
非常重要: 现在,这一切都必须一次性发生。只需执行一个开始块就可以完成整个工作。
问题: 但是现在这些同义词不起作用,因为架构 A 没有任何权限它在 B 中创建的表格。
那么有没有办法创建表(从A到B)以及创建时给出的所有权限? 或者可以在执行时在PL-SQL中切换模式,以便可以从B到A授予priv? (我确信这不可能做到,但他们说什么都不可能!:O:P所以要求)
请帮帮我们!欢迎所有建议!
这项工作的主要目标是一次完成,只从一个模式中完成。
答案 0 :(得分:3)
您可以定义一个将在定义者权限下运行的程序,而不是调用者权限
CREATE OR REPLACE PROCEDURE definer_test AUTHID DEFINER IS
BEGIN
...
END definer_test;
您将在模式B中定义此类过程,该过程执行作业并从模式A调用它。