Back to Supabase

How Can I Revoke Execution Of A Postgresql Function 2GYb0A

apps/docs/content/troubleshooting/how-can-i-revoke-execution-of-a-postgresql-function-2GYb0A.mdx

1.26.04537 B
Original Source

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 (foo in this case) from PUBLIC:
sql
revoke execute on function foo from public;
  • Revoke execution from a particular role (anon in this case):
sql
revoke execute on function foo from anon;

Now anon should get an error when trying to execute the function:

sql
begin;
set local role anon;
select foo();
ERROR:  permission denied for function foo