En PostgreSQL, tal vez podría arreglárselas con SECURITY DEFINER
-¿Funciones que razonan sobre el usuario actual? Documentado aquí:http://www.postgresql.org/docs/ 8.4/static/sql-createfunction.html
Editar:
plperl se puede usar para variables de sesión . Hay otras alternativas (ver enlace en el comentario), pero plperl es la más simple de ellas.