创建oracle dblink权限不足,Oracle-存储过程-创建sequence的时候报权限不足
引用自:http://www.cnblogs.com/yhoralce/p/6817010.html
在包體里寫了一個過程,test執行時報錯,但是如果把該過程單獨拿出來創建一個,就能順利執行。
在沒加上調用者權??authid current_user之前,報錯如下
ORA-01031: insufficient privileges。ORA-06512: at "RT_ANN_ODS.ODS_EI_WDNEW", line 1720
查了01031,發現是缺少權限,那么問題就來了,缺少什么權限?
過程能編譯完成,只是測試時候報錯,那么就是缺少調用者權限了。
鎖定了這個問題,就輸入調用者權限即可。
在單一的過程中,調用者權限是這樣用的:
create or replace procedure p_test
2 Authid Current_User ----寫在過程名稱之后,is之前
3 is
4 begin
5 execute immediate 'create sequence SEQ_TBS minvalue 10001 maxvalue 99999 start with 10001 increment by 1cache 10';6 end;
于是在包體里的過程名稱后邊加上Authid Current_User,編譯,報錯如下:
PLS-00157:?? AUTHID?only allowed on schema-level programs
這句話的意思是說,AUTHID只能用字啊頂級的項目,也就是在包里使用才能生效。
查了下錯誤原因 An AUTHID clause was specified for a subprogram inside a package or type. These clauses are only supported for top-level stored procedures, packages, and types.
大致意思就是authid只能用在頂級的存儲過程、包、類型上,不能用在包或類型的子程序上。
在包上加入authid,執行正常了。
create or replace package p_test
authid current_user
is
……
到此,問題解決。
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的创建oracle dblink权限不足,Oracle-存储过程-创建sequence的时候报权限不足的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle 实现map,PLSQL实现
- 下一篇: oracle获取父级,如何通过sql获取