Используйте команду \ddp в psql,
чтобы получить информацию о существующих назначениях прав по умолчанию.
Значение отображения прав такое же, как объяснено для
\dp в Раздел 2.2.8.
Если вы хотите удалить роль, для которой были изменены права по умолчанию,
необходимо отменить эти изменения в её правах по умолчанию или использовать
DROP OWNED BY, чтобы удалить запись о правах по умолчанию
для этой роли.
Предоставить право SELECT всем для всех таблиц (и представлений), которые вы
впоследствии создадите в схеме myschema, и также позволить
роли webuser выполнять INSERT в них:
ALTER DEFAULT PRIVILEGES IN SCHEMA myschema GRANT SELECT ON TABLES TO PUBLIC; ALTER DEFAULT PRIVILEGES IN SCHEMA myschema GRANT INSERT ON TABLES TO webuser;
Отменить вышеуказанное, чтобы впоследствии создаваемые таблицы не имели никаких дополнительных прав сверх обычных:
ALTER DEFAULT PRIVILEGES IN SCHEMA myschema REVOKE SELECT ON TABLES FROM PUBLIC; ALTER DEFAULT PRIVILEGES IN SCHEMA myschema REVOKE INSERT ON TABLES FROM webuser;
Убрать право EXECUTE для PUBLIC, которое обычно предоставляется для функций,
для всех функций, которые впоследствии создаст роль admin:
ALTER DEFAULT PRIVILEGES FOR ROLE admin REVOKE EXECUTE ON FUNCTIONS FROM PUBLIC;
Однако обратите внимание, что вы не можете добиться этого эффекта
с помощью команды, ограниченной одной схемой. Эта команда не возымеет эффекта,
если только она не отменяет соответствующий GRANT:
ALTER DEFAULT PRIVILEGES IN SCHEMA public REVOKE EXECUTE ON FUNCTIONS FROM PUBLIC;
Это происходит потому, что права по умолчанию на уровне схемы могут только добавлять права к глобальным настройкам, но не могут отменять права, предоставленные ими.
В стандарте SQL нет оператора ALTER DEFAULT PRIVILEGES.