Sim, isso mesmo vc Não Pode truncar via sinônimo : 
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1458414958491#39365030086090
 mostra isso pra nós.

 EVIDENTEMENTE, vc sabe que DROP ANY TABLE é um privilégio ** HIPER ** poderoso 
(ANY significat QUALQUER UM, até internas!, tudo e todas!) , então vc NUNCA vai 
, num ambiente produção, dar esse privilégio pra NINGUÉM se não quiser ter um 
furo de segurança do tamanho dum bonde : vc VAI fazer o comum, que é criar uma 
PROCEDURE que faz o DROP (e antes de fazer o DROp valida as entradas) e dar 
GRANT de EXECUTE nessa proc pro tal usuário que "precisa truncar tabelas de 
outro" ...

 []s

   Chiappa

--- Em [email protected], Alex List <alex@...> escreveu
>
> Olá,
> 
> para um esquema que precisa executar TRUNCATE em outro schema, segundo a
> documentação é necessário o grant DROP ANY TABLE ... até aí testado e
> funciona.
> No caso de a tabela ter sinonimo publico, e este segundo usuário não fizer
> referencia ao schema.table para executar o truncate, o Oracle retorna erro
> dizendo que não existe tabela.
> 
> Concluo que para o comando TRUNCATE, necessariamente precisa qualificar com
> o schema_name, e sinônimo público não vale.
> Estou correto? Isso realmente funciona assim?
> 
> Agradeço qquer retorno.
> 
> Alex
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>


Responder a