大家好,欢迎来到IT知识分享网。
oracle运行SQL报错:ORA-01031: 权限不足
原因:
本存储过程的用户为IFNRATEST,功能为insert数据到P2这个用户中的LOT_BK表。查看逻辑后,发现本存储过程的所属用户(INFRATEST用户)不具备存储过程中被操作表(LOT_BK表)的insert、select、update权限,导致权限不足。
create or replace PROCEDURE "INFRATEST"."A_INSERT_LOT_BK" AS begin insert into p2.lot_bk (table_name,table_num,table_status) vlaues ("test",1,"test"); commit; end;
解决办法:
1.给用户INFRATEST用户赋权:
grant insert,select,update on P2.LOT_BK to INFRATEST; --P2是LOT_BK的所属用户,意思就是LOT_BK是被P2这个用户创建的,INFRATEST要是想要操作LOT_BK表,难么就要用P2用户赋予权限给INFRATEST才行。
2.赋权后再次重新编译,可以成功编译:
写到这里,从这个权限机制中,我想到《满城尽带黄金甲》中周润发说的那句话:天地万物,朕赐给你,才是你的;朕不给,你不能抢。哈哈哈。
最后打个鸡血吧:
断断续续的坚持也是坚持。累的半死不活还去学习,这就是坚持!共勉!
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/126789.html