暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

执行存储过程时报ORA-01031: insufficient privileges

dblife 2016-01-12
465

今天在某用户下创建一个定时创建表的存储过程,在执行时报如下错误

ERROR at line 1:
ORA-01031: insufficient privileges
ORA-06512: at “LTZBYYT.P_EVT_LOG_INFO”, line 15
ORA-06512: at line 1

报了权限不足,其实这里涉及到plsql中的一个权限知识点,

In STORED PROCEDURE, roles are DISABLED. Hence any PRIVILEGES granted by a ROLE to USER, will NOT be in effect. The PRIVILEGES MUST be directly granted to the user.

有两种方式来解决这个问题

1、就是在存储过程中添加 AUTHID current_user

这个所用就是让当前调用procedure的用户可以使用role的权限去执行操作

2、显示赋权

针对这个例子我们就显示赋予create any table的权限。


文章转载自dblife,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论