Vaya! Sí que te has molestado en responder, muchísimas gracias!! Te pongo en situación, que está claro que antes no me he explicado bien:
1.- Tengo un Usuario1.Tabla_Destino.
2.- Tengo un Usuario2.Tabla_ConTriggerX.
3.- Tengo el TriggerX que ejecuta el procedimiento tal que así:
CREATE OR REPLACE TRIGGER Usuario2.ACTUALIZAR
AFTER DELETE OR INSERT OR UPDATE
OF CAMPOAFECTADO
ON Usuario2.Tabla_ConTriggerX
REFERENCING NEW AS NEW OLD AS OLD
BEGIN
Usuario2.ProcedimientoQueActualizaTabla_Destino;
END;
4.- Tengo el Usuario2.ProcedimientoQueActualizaTabla_Destino que, para simplificar muuuucho, hace algo así:
INSERT INTO Usuario1.Tabla_Destino SELECT * FROM Usuario2.Tabla_ConTriggerX
5.- En la Tabla_Destino he asignado permisos de INSERT, SELECT, UPDATE, DELETE para Usuario2 (grantor Usuario1).
El procedimiento te puedo decir que está bien, ya que si el INSERT le digo que me lo haga en una réplica de Tabla_Destino pero como propietario Usuario2 (INSERT INTO Usuario2.Tabla_Destino SELECT ...), lo hace bien.
El procedimiento está compilado correctamente. Yo por lo que veo es el caso 2 que has sugerido, pero en el tema roles me pierdo un poco y no sé si puede ser este el problema, aunque en principio diría que no.
¿Qué opinas? De nuevo muchas gracias por tu ayuda, llevo todo el día con esto y no termino de sacarlo.