Thiago,
Bom dia,
Uma sugestão de roteiro:
A) Criação de uma role (CREATE ROLE ..)
B) Criação de usuário
C) Permissões minimas de sistema
Selecionar tudo
GRANT CREATE SESSION .. GRANT ALTER SESSION .. QUOTA 0 ON TABLESPACE
D) Atribuição de SELECTS de algumas tabelas para a role
E) Criação de sinônimo PRIVADO apontando para os objetos do ERP. Digamos que você criou um usuário CONSULTA e o schema do ERP se chama ERP_OW. Seu comando para criar sinônimo privado seria
Selecionar tudo
CREATE OR REPLACE SYNONYM CONSULTA.<NOME_TABELA> FOR ERP_OW.<NOME_TABELA);
F) Havia me esquecido, mas você precisa também atribuir a role para seu usuário (ex: GRANT <NOME_ROLE> TO CONSULTA);
Creio que com isso você não terá problemas em acessar como o "CONSULTA" e fazer os SELECTS, sem a necessidade de mencionar o ERP_OW antes do nome da tabela.
Nada contra um sinônimo PUBLICO, mas você teria problemas se nesta instâncias existissem outras tabelas com o mesmo nome, mas pertencendo a schemas diferentes (um sinonimo público só aponta para um único objeto de schema). Com o sinônimo PRIVADO, você evitaria problemas em situações como esta.
Boa sorte,
Sergio Coutinho