RE:Procedimientos Almacenados
Disculpa que te responda demasiado tarde...
Bueno, los procedimientos almacenados los puedes hacer con el lenguaje que postgresql te brinda (PLPGSQL, PLJAVA, PERL, SQL, C) el mas utilizado es el PLPGSQL es similar al de ORACLE.
create or replace function fu_prueba(IN in_x int2, IN in_y int2, OUT on_z float2)
as
$$
begin
on_z := in_x/in_y;
end;
$$
language 'plpgsql';
Con respecto a los permisos, puedes utilizar el GRANT EXECUTE sobre los procedimientos (repito, casi igual que el Oracle).
GRANT EXECUTE ON FUNCTION fu_prueba(IN in_x int2, IN in_y int2, OUT on_z float2) TO usuario_db;
Espero que te haya podido ayudar.