I’ve executed the following in a clean database: As postgres/superuser: CREATE ROLE impotent NOLOGIN; CREATE FUNCTION testfunc() RETURNS boolean AS $$ BEGIN RETURN true; END; $$ LANGUAGE 'plpgsql'; REVOKE ALL ON FUNCTION testfunc() FROM impotent; SET ROLE impotent; SELECT has_function_privilege('impotent','testfunc()','execute'); SELECT testfunc(); The has_function_privilege returns true instead of false and the SELECT testfunc() returns without an exception. I expected failure due to the REVOKE ALL … FROM impotent so what am I missing? Thanks, David J |