Ao criar a função defina a segurança :

SECURITY INVOKER

ou

SECURITY DEFINER


SECURITY INVOKER indica que a função deve ser executada com os privilégios
do usuário que a chamou e é o padrão.
SECURITY DEFINER indica que a função deve ser executada com os privilégios
de seu criador.



Gaspar at inforep.com.br
----- Original Message ----- 
From: "Otacilio Neto" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Tuesday, April 25, 2006 9:12 AM
Subject: Re: [PostgreSQL-Brasil] Direitos de execução de função



--- Otacilio Neto <[EMAIL PROTECTED]>
escreveu:

> Olá pessoal
>
>     Estou com o seguinte problema. Criei uma função,
> mas gostaria que ela só fosse chamada de dentro de
> triggers ou seja que nenhum usuário com exceção do
> pgsql possa chama-la diretamente. Alguem sabe como
> faze-lo?
>
> Obrigado
>

Testando aqui, o comando
REVOKE ALL ON FUNCTION minha_funcao(text) FROM PUBLIC
CASCADE;
Faz com que apenas os usuários que possuem direitos de
execução dados explicitamente possam executar a
função. O problema eh que se eu crio uma outra função
que utiliza a função que o usuário não possui direito
de execução esta da um erro de execução. Eu queria
poder criar funções "seguras" que todos os usuários
possam executar e através delas chamar as funções
"inseguras" o problema eh que as funções que o usuario
não tem permissao de execução não podem ser executadas
mesmo de dentro de funções que os usuários possuem
permisão de execução. Alguém pode me ajudar a resolver
este problema?

Otacilio


_______________________________________________________
Abra sua conta no Yahoo! Mail: 1GB de espaço, alertas de e-mail no celular e
anti-spam realmente eficaz.
http://br.info.mail.yahoo.com/
_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
http://www.postgresql.org.br

_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
http://www.postgresql.org.br

Responder a