返回顶部
首页 > 资讯 > 错误编码 >ORA-31133: Cannot execute handler “string”.”string” with invoker rights ORAC
  • 875
分享到

ORA-31133: Cannot execute handler “string”.”string” with invoker rights ORAC

报错故障handler 2023-11-05 04:11:48 875人浏览 薄情痞子
摘要

文档解释 ORA-31133: Cannot execute handler “string”.”string” with invoker rights Cause: Attempted to

文档解释

ORA-31133: Cannot execute handler “string”.”string” with invoker rights

Cause: Attempted to invoke an event handler with invoker rights when the SET-INVOKER attribute in the resource configuration that defines the handler was not set to TRUE.

Action: Either redefine the named handler with definer rights or change the SET-INVOKER attribute in the resource configuration that defines the named handler to TRUE.

ORA-31133:

错误说明:

ORA-31133触发器错误,指明无法使用相关“[用户/过程|函数]”(调用者权利),这是因为调用者没有执行这个行为所需要的权限。在oracle数据库中,授权和调用者是不同的概念,对对象的权限只有授权者有。

常见案例

当用户尝试访问一个模式中的特定对象(如存储过程,函数,视图,包)时,就可能会出现ORA-31133错误。例如,当用户尝试使用存储过程时,ORA-31133错误可能会出现:

sql> EXECUTE MY_PACKAGE.MY_PROCEDURE;

BEGIN MY_PACKAGE.MY_PROCEDURE; END;

*

ERROR at line 1:

ORA-31133: cannot execute MY_PACKAGE.MY_PROCEDURE with invoker rights

解决方法

要解决ORA-31133错误,可以在过程或函数所在的模式中给用户授予EXECUTE权限:

GRANT EXECUTE ON MY_PACKAGE.MY_PROCEDURE TO MY_USER;

EXECUTE MY_PACKAGE.MY_PROCEDURE;

BEGIN MY_PACKAGE.MY_PROCEDURE; END;

/

此外,还可以检查用户是否已给其拥有的模式的所有权限。在上面的例子中,可以检查MY_USER是否拥有MY_PACKAGE模式的所有权限:

GRANT ALL ON MY_PACKAGE TO MY_USER;

由于在ORA-31133错误中,原因通常是用户缺少权限,所以把相关模式授予所有权限也是解决ORA-31133错误的有效方法。

--结束END--

本文标题: ORA-31133: Cannot execute handler “string”.”string” with invoker rights ORAC

本文链接: https://lsjlt.com/news/533235.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作