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