How can I revoke execution of a PostgreSQL function?
Last edited: 1/17/2025
All functions access is PUBLIC by default, this means that any role can execute it. To revoke execution, there are 2 steps required:
- Revoke function execution (
fooin this case) from PUBLIC: 
1revoke execute on function foo from public;- Revoke execution from a particular role (
anonin this case): 
1revoke execute on function foo from anon;Now anon should get an error when trying to execute the function:
1234begin;set local role anon;select foo();ERROR:  permission denied for function foo