Problème de droits d'éxécution dans un trigger
Bonjour,
mon problème :
j'ai une procédure qui me crée un job et le scheduler qui va bien :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| create or replace procedure period authid current_user is
pragma AUTONOMOUS_TRANSACTION;
begin
dbms_scheduler.create_program
(
program_name => 'program_imp_alerte',
program_type => 'EXECUTABLE',
program_action => '/home/ora11g/projet/lancement.sh',
enabled => TRUE,
comments => 'Scheduler des imports'
);
dbms_scheduler.enable (name => 'program_imp_alerte');
dbms_scheduler.create_schedule
(
schedule_name => 'scheduler',
start_date => SYSTIMESTAMP, repeat_interval => 'freq=minutely; interval=' || get_option('intervale'),
end_date => NULL,
comments => 'Job toutes les x minutes '
);
dbms_scheduler.create_job
(
job_name => 'job_import_alerte',
program_name => 'program_imp_alerte',
schedule_name => 'scheduler',
enabled => TRUE,
comments => 'Creer le job'
);
end period;
/ |
Si je lance cette procédure dans un script du genre :
Code:
1 2 3 4
| begin
period();
end;
/ |
-> aucun problème.
J'ai également un trigger qui m'appelle cette procédure sur un update d'une table :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| create or replace trigger trg_chg_option
after update on alerte_options
for each row
begin
if :old.nom_option = 'intervale' then
period();
end if;
end;
/ |
Le problème, lors de l'update j'ai :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| Erreur commençant à la ligne 1 de la commande :
update alerte_options set valeur_option = '2' where nom_option = 'intervale'
Rapport d'erreur :
Erreur SQL : ORA-27486: privilèges insuffisants
ORA-06512: à "SYS.DBMS_ISCHED", ligne 5
ORA-06512: à "SYS.DBMS_SCHEDULER", ligne 36
ORA-06512: à "XAVINOU_DATA.PERIOD", ligne 5
ORA-06512: à "XAVINOU_DATA.TRG_CHG_OPTION", ligne 7
ORA-04088: erreur lors d'exécution du déclencheur 'XAVINOU_DATA.TRG_CHG_OPTION'
27486. 00000 - "insufficient privileges"
*Cause: An attempt was made to perform a scheduler operation without the
required privileges.
*Action: Ask a sufficiently privileged user to perform the requested
operation, or grant the required privileges to the proper user(s). |
Là, je n'ai aucune idée pourquoi il me dit que je n'ai pas le droit de faire.
Si quelqu'un à une idée, je suis preneur...
Merci :)