В интерактивной оболочке postgres нужно подключиться к нужной базе и выполнить:
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public to USERNAME;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO your_db_user;
GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA public TO your_db_user;
Также может выскочить ошибка
ProgrammingError: must be owner of relationТогда выполняем:
ALTER DATABASE your_db OWNER TO your_db_user;
ALTER TABLE your_table OWNER TO your_db_user;
UPDATE
Но скорее всего в данном случае придется менять владельца у всех таблиц в данной базе, поэтому используем REASSIGN
В оболочке psql:
postgres=# \c yourdb
You are now connected to database "yourdb" as user "postgres".
yourdb=# \dt
yourdb=# REASSIGN OWNED BY old_role TO new_role;
REASSIGN OWNED
yourdb=# \dt
UPDATE 2
Если каким-то образом оказалось, что таблицы принадлежат администратору базы, который указан владельцем системных таблиц, тогда выбросит ошибку.
ERROR: cannot reassign ownership of objects owned by role BASE_ADMIN because they are required by the database system
В таком случае есть другое решение:
SELECT 'ALTER TABLE '|| schemaname || '.' || tablename ||' OWNER TO my_new_owner;'
FROM pg_tables WHERE NOT schemaname IN ('pg_catalog', 'information_schema')
ORDER BY schemaname, tablename;
На дисплее отобразится список команд для переименования каждой таблицы. Эти команды надо скопировать и вставить тут же в оболочке postgres.
Найдено на SO