Вы можете достичь этого следующим образом.
1) Сохраните учетные данные суперпользователя при себе и аннулируйте все права доступа, связанные с вашей схемой.
REVOKE ALL ON schema public FROM public;
Редактировать: после вышеуказанной команды Только суперпользователь может создавать новые объекты внутри схемы publi c, что нецелесообразно. Предполагая, что не-суперпользователю foo_user должна быть предоставлена эта привилегия, это должно быть сделано с помощью:
GRANT ALL ON schema public TO foo_user;
Чтобы узнать, что означает ВСЕ для схемы, мы должны обратиться к GRANT в do c. Похоже, что для схемы это означает CREATE и USAGE.
Таким образом, решение вашей проблемы - это создание другого типа PostgreSQL пользователей БД с разными разрешениями.
Таким же образом создается один PostgreSQL пользователь для клиента дает эту информацию.
Надеюсь, что это решит вашу проблему.