Исходя из MySQL и не зная о ROLE, я рассеянно пробовал это
GRANT CREATE ON TABLESPACE pg_default TO username;
Он не имел желаемого эффекта. Команда, которую я искал, была:
ALTER ROLE username WITH CREATEDB;
Но какая разница именно? Предоставляет ли кто-то роль CREATEDB неявно давать им CREATE ON TABLESPACE...? Есть таблица, где я могу видеть все это?
Из docs, GRANT CREATE ON TABLESPACE означает (мой акцент):
Для табличных пространств позволяет использовать таблицы, индексов и временных файлов. созданных в табличном пространстве, и позволяет базам данных быть созданные, которые имеют табличное пространство по умолчанию табличного пространства. (Обратите внимание, что аннулирование этого привилегия не изменит место размещения существующих объектов.)