Walace, os privil?gios que um usu?rioo tem sobre os objetos de outro via ROLE n?o s?o enxergados quendo vc tenta acessar as tabelas via PROCEDURE, ou VIEWS.
Exemplo: Vc deve enxergar as tabelas do usu?rio TESTE via usu?rio X porque tem os privil?gios na tabela atrav?s de alguma ROLE.
Para usar as tabelas do usu?rio TESTE em uma procedure do usu?rio X, vc tem que ter o privil?gio das tabelas do usu?rio TESTE concedidos diretamente para o usu?rio X. Exemplo:
grant select on teste.tabela to x;
Desta forma sua procedure vai funcionar.
Qualquer d?vida contacte.