17.5. Funções e gatilhos

As funções e os gatilhos permitem que usuários insiram código no servidor que outros usuários podem executar sem conhecer. Portanto, estes dois mecanismos permitem a criação de "Cavalos de Tróia" [1] com relativa impunidade. A única proteção real é um controle rígido sobre quem pode definir funções.

As funções executam dentro do processo servidor, com as permissões do sistema operacional do processo servidor de banco de dados. Se a linguagem de programação utilizada pela função permitir acesso à memória sem verificação, é possível mudar as estruturas de dados internas do servidor. Portanto, entre outras coisas, estas funções podem burlar qualquer sistema de controle de acesso. As linguagens de função que permitem este tipo de acesso são consideradas "não confiáveis" (untrusted), e o PostgreSQL somente permite que superusuários criem funções escritas nestas linguagens.

Notas

[1]

Cavalo de Tróia — Um programa destrutivo disfarçado de um aplicativo benigno. Ao contrário dos vírus, os cavalos de tróia não se replicam, mas podem ser tão destrutivos quanto estes. What is Trojan Horse. (N. do T.)

SourceForge.net Logo CSS válido!