Ter 25 Out 2005 09:11:06 BRT
Modificado em
Ter 25 Abr 2006 22:24:19 BRT

Conjunto de funes para execuo de comandos do sistema operacional e enviar e-mail de dentro de funes e triggers do PostgreSQL. 
Para instalar: 
Execute o comando 

$pg_config --pkglibdir

Edite o arquivo instala.sql . Na ultima chamada a funo CREATE, substitua o conjunto /usr/local/lib/postgresql pela saida do comando pg_config --pkglibdir.
Se souber de uma forma de passar este parametro automaticamente, sem ter que editar, por favor me diga.
Execute como root o comando a seguir
onde voce deve substituir pgsql pelo super usurio da sua instalao do PostgreSQL e template1 pelo nome do banco de dados onde voc quer instalar as funes. Instalando em template1 todos os bancos que forem criados a partir deste momento com template1 como modelo herdaro as funes.

#make install username=pgsql database=template1 

As funes exec so criadas de forma que somente o super usurio do banco possa executa-las. Para que funes ou usurios menos privilegiados possam executa-las  preciso que no momento da criao da funo que usa exec voc utilize SECURITY DEFINER e as crie como o super usurio. Mais detalhes leia a ajuda do comando CREATE FUNCTION
Os comandos executados sao passados ao syslog do sistema.
O retorno da funo exec e envia_email  o valor de retorno do processo executado.
Os parmetros da funo envia_email so
FROM
TO (Um destinatrio por linha)
ASSUNTO
MENSAGEM
LISTA DE ANEXOS (um arquivo por linha)
Para enviar e-mails de dentro de funes ou triggers voc precisa criar a funo que chama envia_email com SECURITY DEFINER e pelo super usurio. NUNCA permita que usurios possam chamar essas funes diretamente, ou passar parmetros diretamente para elas, caso contrrio eles podem facilmente executar comandos do sistema operacional com as permisses do usurio sob o qual o PostgreSQL est sendo executado.
Se voc souber de uma forma de remover o caminho de nome de arquivos, ex:
/home/ota/anexo.pdf
para
anexo.pdf
direto da shell, por favor me diga.
Qualquer problema, pode me contatar por e-mail. Eu ficarei feliz em ajudar.

Otacilio de Araujo Ramos Neto 25/04/2006
otacilio_neto@yahoo.com.br
