04.27.07

在存储过程中执行rebuild index online的权限问题

Posted in Oracle管理 at 3:57 pm by David.Guo

今天开发的兄弟发了个据说是能提高在线分析索引的procedure过来.

在生产系统跑了下,rebuild 1kw记录的表的三个索引,用了1s,真快.

可是别高兴的太早,在log中发现数据库中报权限不足.

ok,把那个存储过程中的那个动态sql的语句单独执行,没问题,权限够的.

然后,作个匿名块,只写了那段动态sql,还是可以执行的,就是丢到procedure中不行.怀疑是procedure中执行ddl的语句的权限没有,但是作drop和truncate都行,就是不能执行我这个alter index index_name rebuild online;

我真的要丢他老母了,nnd,看起来权限没有错呀.到网络上去看看,发现说如果是不用online的话,是可以执行的,ok,我试试,不用online确实可以.

后来想想,online和不用online,不就是要创建个系统临时表吗.

给该用户显式授权grant create any table to user;

再执行,好了.

靠,oracle也真土的,我这用户可是dba权限,郁闷死.

« Previous entries ·