Назад | Перейти на главную страницу

Что требуется для того, чтобы обычный пользователь мог создавать схемы в PostgreSQL?

Я создал новую базу данных test и создал пользователя eonil с помощью этой команды:

CREATE ROLE eonil LOGIN ENCRYPTED PASSWORD 'password' NOINHERIT VALID UNTIL 'infinity';

на моем PostgreSQL. я бегу psql -U eonil test. Когда я пытался создать новую схему, появляется ошибка.

test=> CREATE SCHEMA new_schema AUTHORIZATION eonil;
ERROR:  permission denied for database test
test=> 

Почему возникает ошибка? Что требуется?

Предоставить пользователю CREATE привилегия в базе данных, например

GRANT CREATE ON DATABASE test TO eonil

В CREATE Привилегия, примененная к существующей базе данных, позволяет пользователю создавать новую схему в базе данных. Официальная документация о том, какие еще права доступа вы можете GRANT является Вот.