oracle在存儲過程中執行動態sql創建序列顯示權限不足

描述:需要創建一個sql序列,是通過存儲過程實現的,再執行中報:錯誤代碼sqlcode:-1031 ORA-01031: 權限不足ORA-06512: 的錯,但單獨執行創建序列的sql是可以執行成功的。

解決方式:先是通過csdn查詢資料,發現好多都說因爲%oracle_home%\network\admin\sqlnet.ora文件內缺少:SQLNET.AUTHENTICATION_SERVICES=(NTS) 語句,我瀏覽後,發現我的文件中該文件齊全。

然後又發現說 :在存儲過程聲明的地方加上“AUTHID current_user”,然後我加上了,

create or replace procedure 序列名()
AUTHID current_user  
as 

begin 

end,

重新執行後,還是報錯,最後想到,是不是沒有給該角色賦予權限,但剛創建時記得賦予了最高權限,但也沒有什麼辦法了,只能試試看

於是登錄sys賬戶,執行以下sql

grant create  sequence to name
grant drop any  sequence to name

再試了試,成功了。

寫此篇只是爲了記錄下解決oracle權限的可能出現問題以及解決方式。如果還有其他的可能,也歡迎大家互相探討

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章