首页 文章

Oracle:在另一个模式中创建表,并从同一模式授予select和insert

提问于
浏览
1

我有两个架构 .

1.Schema A

2.Schema B

我需要做以下事情 .

  • 我想在架构 B 中创建一些表(与 A 中的一些表相同)

  • 然后将数据从 A 移动到 B .

现在我想从schema A 做所有这些 . 我编写了一个包,在 A 中执行时将创建 B 中的所有表,然后在 A 中为它们创建同义词 . 然后只需从自己的表中选择数据并插入 B's 表 .

VERY IMP : 现在这一切都必须一气呵成 . 只需执行一个开始块就可以完成整个工作 .

Problem : 但是现在这些同义词不起作用,因为Schema AB 中创建的表上没有任何priv .

那么有没有办法创建表(从A到B)与创建时给出的所有权限?或者可以在执行时在PL-SQL中切换模式,以便可以从B到A授予priv? (我确信这不可能做到,但他们说什么都不可能!:O:P所以问)

请帮帮我们!欢迎所有建议!

The Main objective of this job is to do it in one go and from only one schema.

1 回答

  • 3

    您可以定义将在定义者权限下运行的过程,而不是调用者权限

    CREATE OR REPLACE PROCEDURE definer_test AUTHID DEFINER IS 
    BEGIN
        ...
    END definer_test;
    

    您将在模式B中定义此类过程,该过程执行作业并从模式A调用它 .

相关问题