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

时间:2019-01-02 13:16:10

标签: oracle plsql

在oracle中,当我执行程序包时,出现错误:

  

ORA-01031:特权不足

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

mySchema中的

myPackage。但是表的架构有所不同。

我尝试使用以下脚本,但无法解决问题。

grant execute on mySchema.myPackage to otherSchema;

感谢您的关注。

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

1 个答案:

答案 0 :(得分:1)

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

似乎mySchema试图禁用otherSchema中的约束,因此基本上就像您以mySchema身份登录并尝试执行以下操作一样:

alter table otherSchema.someTable disable constraint myconstraint;

听起来mySchema没有特权otherSchema。您可以:

  1. ALTER TABLE的特权从otherSchema授予mySchema。您必须逐表执行此操作。
  2. ALTER ANY TABLE的系统特权授予mySchema。这可能很危险。
  3. 使用AUTHID CURRENT_USER子句赋予过程调用者的权利。这将使过程以调用它的模式的特权(在这种情况下为otherSchema)运行。

请参阅:Managing Security for Definer's Rights and Invoker's Rights