儲存過程中使用Dbms_Scheduler包的許可權問題
使用使用者Test_User建立儲存過程sp_create_job,在儲存過程中使用Dbms_Scheduler包建立Job_Test,過程建立成功,但是在執行的時候,碰到許可權問題,如下:
SQL> conn test_user/test_user@test
已連線。
SQL> CREATE OR REPLACE Procedure sp_create_job As
2 Begin
3 Dbms_Scheduler.Create_Job(Job_Name => 'Job_Test',
4 Job_Type => 'PLSQL_BLOCK',
5 Job_Action => 'Begin sp_test; End;',
6 Start_Date => sysdate + 2 / 24 / 60,
7 Enabled => True,
8 Comments => 'Test');
9 End;
10 /
過程已建立。
SQL> Begin
2 sp_create_job;
3 End;
4 /
Begin
*
第 1 行出現錯誤:
ORA-27486: 許可權不足
ORA-06512: 在 "SYS.DBMS_ISCHED", line 99
ORA-06512: 在 "SYS.DBMS_SCHEDULER", line 262
ORA-06512: 在 "TEST_USER.SP_CREATE_JOB", line 3
ORA-06512: 在 line 2
此時,檢查了一下Test_User相關的系統許可權,發現許可權都有,但是仍然出現上述錯誤。
SQL> Select * From Session_Privs Where Privilege Like '%SCHEDULE%' Or Privilege
Like '%JOB%';
PRIVILEGE
----------------------------------------
CREATE JOB
CREATE ANY JOB
MANAGE SCHEDULER
CREATE EXTERNAL JOB
事實上,在PL/SQL塊中直接使用Dbms_Scheduler包建立Job,並未碰到許可權問題。
SQL> Begin
2 Dbms_Scheduler.Create_Job(Job_Name => 'Job_Test',
3 Job_Type => 'PLSQL_BLOCK',
4 Job_Action => 'Begin sp_test; End;',
5 Start_Date => sysdate + 2 / 24 / 60,
6 Enabled => True,
7 Comments => 'Test');
8 End;
9 /
PL/SQL 過程已成功完成。
SQL> Begin
2 Dbms_Scheduler.drop_job('Job_Test');
3 End;
4 /
PL/SQL 過程已成功完成。
查了一下,發現Test_User的相關係統許可權,如Create Job是從其他角色上繼承而來,並沒有顯式對其授予該許可權,而在儲存過程或者函式中使用該包,得有顯式授權才可以。
SQL> conn /as sysdba
已連線。
SQL> Grant Create Job To Test_User;
授權成功。
SQL> conn test_user/test_user@test
已連線。
SQL> Begin
2 sp_create_job;
3 End;
4 /
PL/SQL 過程已成功完成。
問題解決。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/92289/viewspace-1031177/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORACLE中儲存過程的許可權問題Oracle儲存過程
- MySQL儲存過程的許可權問題MySql儲存過程
- 在儲存過程中使用EXECUTE IMMEDIATE報許可權問題儲存過程
- 呼叫者儲存過程訪問許可權問題儲存過程訪問許可權
- 儲存過程與許可權儲存過程
- mysql儲存過程的許可權 definerMySql儲存過程
- 儲存過程與許可權(二)儲存過程
- 關於檢視和儲存過程的許可權問題探究儲存過程
- 儲存過程,角色相關的呼叫者許可權和定義者許可權問題儲存過程
- 資料庫許可權-儲存過程資料庫儲存過程
- MYSQL儲存過程許可權問題分析(Security_type詳解)MySql儲存過程
- 如何在儲存過程中擁有role的許可權儲存過程
- oracle儲存過程許可權繼承小結Oracle儲存過程繼承
- 儲存過程許可權__Authid Current_User儲存過程
- 讓使用者擁有儲存過程的除錯許可權儲存過程除錯
- all許可權使用者無法執行儲存過程儲存過程
- 檢視、儲存過程以及許可權控制練習儲存過程
- 【許可權】儲存過程執行時,報ORA-01031許可權不足儲存過程
- java儲存過程呼叫servlet的授權問題Java儲存過程Servlet
- EXECUTE IMMEDIATE 儲存過程中 許可權不足及EXECUTE IMMEDIATE的除錯避坑儲存過程除錯
- 儲存過程問題。。儲存過程
- 解決執行儲存過程出現許可權不足問題(ORA-01031)儲存過程
- MySQL儲存過程中的sql_mode問題MySql儲存過程
- 一個儲存過程的問題!儲存過程
- Vim儲存時許可權不足
- 定義者許可權儲存過程role無效,必須要有顯式授權儲存過程
- oracle的儲存許可權的檢視Oracle
- Oracle 11gR1 RAC安裝過程中遇到的問題:OCR裝置的許可權問題Oracle
- 儲存過程訪問其他使用者的表的問題儲存過程
- ASM中磁碟組許可權問題ASM
- mysql多次呼叫儲存過程的問題MySql儲存過程
- Java呼叫Oracle儲存過程的問題JavaOracle儲存過程
- MySQL許可權問題MySql
- 儲存過程單引號問題儲存過程
- win10 儲存excel報錯 許可權問題怎麼解決Win10Excel
- 使用儲存過程儲存過程
- moderator permission的許可權問題
- 在儲存過程A中呼叫儲存過程B的結果儲存過程