Let's say we have this function:
CREATE OR REPLACE FUNCTION public.test(in_value character varying) RETURNS
character varying
LANGUAGE 'plpgsql' COST 100.0 VOLATILE LEAKPROOF SECURITY DEFINER
AS $$
BEGIN
RETURN in_value;
END;
$$;
ALTER FUNCTION public.test(character varying) OWNER TO user_group_1;
REVOKE ALL PRIVILEGES ON FUNCTION public.test(character varying) FROM
public;
GRANT EXECUTE ON FUNCTION public.test(character varying) TO user_group_2;
Now let's see it with pgAdmin 3:
...
GRANT EXECUTE ON FUNCTION public.test(character varying) TO user_group_1;
GRANT EXECUTE ON FUNCTION public.test(character varying) TO user_group_2;
REVOKE ALL ON FUNCTION public.test(character varying) FROM public;
And now with pgAdmin 4:
...
GRANT EXECUTE ON FUNCTION public.test(character varying) TO user_group_1;
GRANT EXECUTE ON FUNCTION public.test(character varying) TO user_group_2;
Like you can see the revoke of public access is not included in pgAdmin 4 in
SQL tab.
It would be nice to have the whole list of privileges changes there. Because
for example when I copy the code and execute it on another database, then
everyone has access to it!
pgAdmin 4 v1.5
Desktop Runtime
Windows 10 x64 1511
PostgreSQL 9.6.3