描述:需要創建一個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權限的可能出現問題以及解決方式。如果還有其他的可能,也歡迎大家互相探討