I'd like to create a readonly role for a third party to access a handful of tables from the public schema without being able to view the rest of the tables in public.
My initial idea was to create a new schema 'readonly' and then create views in that schema:
create view readonly.table1 as select * from public.table1
Then alter the search path for the readonly user to limit it only to the 'readonly' schema. However, it looks like I can still view the public schema as that role (though I can't select anything from any tables in schema public).
Is there a way to remove all visibility into the public schema from a role? Unfortunately, moving everything to a different schema is not possible.