ORA-01031:权限不足 - 包过程



在oracle中,当我执行我的包时,我得到错误:

ORA-01031:权限不足

我的用户具有 dba 管理员角色。

mySchema 中的 myPackage。但表在架构中不同。

尝试了下面的脚本,但没有解决我的问题。

grant execute on mySchema.myPackage to otherSchema;

感谢您的关注。

execute
mySchema.myPackage.disabledTableConstraint(otherSchema.table_Cons);

通过角色授予的权限在PL/SQL中并不重要。默认情况下,包以定义者的权限执行,这意味着它们以拥有架构的权限执行。

看起来mySchema正在尝试禁用otherSchema中的约束,所以这基本上就像您以mySchema身份登录并尝试这样做一样:

alter table otherSchema.someTable disable constraint myconstraint;

听起来mySchema没有特权对otherSchema这样做。您可以:

  1. 授予从otherSchemamySchemaALTER TABLE权限。您必须逐个表执行此操作。
  2. 授予ALTER ANY TABLE系统权限以mySchema 。这可能很危险。
  3. 使用 AUTHID CURRENT_USER 子句使过程调用者的权限。这将使过程以调用它的架构的权限运行,在本例中为 otherSchema

请参阅:管理定义者权限和调用者权限的安全性

最新更新