Em 04-05-2012 11:00, Vinicius Santos escreveu: > Pessoal bom dia, > > Tenho a seguinte situação, faço um COPY de uma função SETOF, assim: > > COPY( funcao_que_retorna_varias_linhas() ) to '/caminho/arquivo' > > Até ai, tudo bem, o problema é que usuários "comuns" não conseguer dar > COPY dessa maneira. O postgres diz que somente super-usuários conseguem.
É verdade. > Já tentei dar GRANT ALL ON FUNCTION funcao_que_retorna_varias_linhas() > TO dilma_rousseff, mas não adianta. O erro de permissão é do COPY, não de sua função. > Claro que posso mudar a arquitetura e passar para view que o problema > estaria resolvido, mas essa permissão deveria existir IMHO. Não, não estaria resolvido. O COPY para um arquivo precisa de superusuário, pois é o usuário de sistema operacional do servidor, normalmente "postgres", é quem faz a escrita e ele pode escrever diretamente inclusive nos diretórios de dados do cluster. > Estou na versão 8.4. > > Alguma luz? Use COPY (SELECT sua_funcao(argumentos)) TO STDOUT; Isso pode ser usado por usuários ordinários. Capture a saída padrão pela sua aplicação e redirecione para arquivo usando funcionalidades que sua linguagem de programação permitir. No psql é só redirecionar com > para o arquivo desejado. []s Flavio Henrique A. Gurgel Consultor e Instrutor 4Linux Tel: +55-11-2125-4747 www.4linux.com.br _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral