繁体   English   中英

Oracle:在另一个模式中创建表并授予选择并在同一模式中插入该表

[英]Oracle : Create table in another schema and grant select and insert on it from the same schema

我有两种模式。

1.架构A

2,方案B

我需要做以下。

  1. 我想在模式B中创建一些表(与A中的某些表相同)
  2. 然后将数据从A移到B。

现在,我想从架构A进行所有操作。 我编写了一个程序包,当在A中执行该程序包时,将在B中创建所有表,然后在A中为其创建同义词。 然后只需从其自己的表中选择数据并插入B的表中即可。

非常重要:现在,这整个过程必须一次性完成。 只需执行一个begin块就可以完成整个工作。

问题:但是现在同义词将不起作用,因为模式AB中创建的表上没有任何特权。

那么有没有一种方法可以创建表(从A到B),并在创建时给出所有特权呢? 还是可以在执行时在PL-SQL中切换模式,以便可以将特权从B授予A? (我确定这是不可能完成的,但是他们说!:O:P这么问就没有什么是不可能的)

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

这项工作的主要目标是一次完成并仅从一种模式进行。

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

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

您将在模式B中定义这样的过程,该过程将完成工作并从模式A调用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM