при создании роли она не получала все привилегии public ? и насколько будет правильно если отобрать у public все привилегии ?
Первое — нет, public роль это условность, описывающая вообще роли. Второе — нормально, так и делается по потребности.
Спасибо. Как я понял алгоритм действий таков: 1) Через public создаем суперюзера для админа 2) Логинимся в админа и убираем все привилегии у public 3) Через суперпользователя управляем уже другими ролями
А разве REVOKE PUBLIC from <username> не сработает?
а если забрать привилегии у public, что будет с остальными ролями ? Тоже останутся без прав которые они получили от public ?
Да, все роли являются членами public - An implicit group everybody belongs to
Не пробовал, но сильно сомневаюсь. Там нужна будет какая-то прорва кода для такого действия -- прописать явно все дефолты для piblic, которые не были прописаны, пото переписать вообще все типы acl, в которых было что-то выдано для public -- чтобы не учитывало эту роль...
спасибо
Просмотрите ALTER DEFAULT PRIVILEGES — определить права доступа по умолчанию. Не супер гибко но позволяет управлять правами новых объектов это удобно при создании и настройке. В частности мне тоже не нужен был Public для новых функций. Это решило проблему
Обсуждают сегодня