qq69033472 发表于 2015-1-23 15:19:55

JOB执行procedure报权限不足

oracle 10.2.0.5 on centos 5.9
有一存储过程,用job定时执行,但是job一调用就会报权限不足的错,可是我手动执行procedure就会成功,存储过程大概如下,执行create table ipxx.....就会报错
create or replace procedure proc_save_quality Authid Current_User is
begin
  execute immediate('truncate table static_ip_quality');
  execute immediate('drop table ipxx');
  execute immediate('CREATE TABLE ipxx as select id, ip, count(*) as ct from t_ip group by id, ip');
  ........
end proc_save_quality;

执行的用户有以下权限
CREATE TABLE
CREATE TYPE
CREATE JOB
CREATE SYNONYM
CREATE SESSION
CREATE VIEW
CREATE PROCEDURE
DEBUG ANY PROCEDURE
CREATE SEQUENCE
CREATE MATERIALIZED VIEW
CREATE DATABASE LINK
SELECT ANY DICTIONARY
DEBUG CONNECT SESSION
CREATE TRIGGER

Liu Maclean(刘相兵 发表于 2015-1-23 15:21:03

具体报什么错误

qq69033472 发表于 2015-1-23 15:21:19

ORA-12012: 自动执行作业 263 出错
ORA-01031: 权限不足
ORA-06512: 在 "TELAPP.PROC_SAVE_QUALITY", line 6
ORA-06512: 在 line 1

qq69033472 发表于 2015-1-23 15:34:31

这个用户的权限是一个role,但是加了Authid Current_User,还需要显示的授权吗

qq69033472 发表于 2015-1-23 15:38:13

问题解决了,显示授权就好了,但是存储过程里面加Authid Current_User不能解决这个问题吗

Liu Maclean(刘相兵 发表于 2015-1-23 20:52:16

给出完整的procedure  代码
页: [1]
查看完整版本: JOB执行procedure报权限不足