6

Oracle 数据库中有两种模式。

MYSCHEMA那是由我控制的。

OTHERSCHEMA那不是我能控制的。

我只知道我可以从select * from OTHERSCHEMA.OTHEROBJECT. 然而,OTHEROBJECT同义词

在我的包裹里,我有这样的声明

insert into MYSCHEMA.MYTABLE(COL1) select COL1 from OTHERSCHEMA.OTHEROBJECT;

但它给了我Table or view does not exist.

我该如何解决或绕过这个问题?谢谢!

4

1 回答 1

11

我假设您获得了otherschema.otherobject通过与直接授权相对的角色(例如grant all on otherschema.otherobject to myschema)进行选择的特权。如果是这种情况,则不会使用此角色中的权限来确定您在 PL/SQL 块中拥有的权限。

另请参阅角色在 PL/SQL 块中的工作方式(Oracle 文档,其中在具有定义者权限的命名块中使用的角色下说:

在使用定义者权限执行的任何命名的 PL/SQL 块(存储过程、函数或触发器)中,所有角色都被禁用。角色不用于权限检查,您不能在定义者的权限过程中设置角色。)

于 2011-12-22T06:12:57.303 回答