O que é necessário para que um usuário normal possa criar esquema no PostgreSQL?

10

Criei um novo banco de dados teste criei o usuário 'eonil' com este comando:

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

no meu PostgreSQL. Eu corro psql -U eonil test. Quando tentei criar um novo esquema, ele mostra um erro.

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

Por que isso comete um erro? O que é necessário?

Eonil
fonte

Respostas:

16

Conceda o CREATEprivilégio do usuário no banco de dados, por exemplo

GRANT CREATE ON DATABASE test TO eonil

O CREATEprivilégio, quando aplicado a um banco de dados existente, permite ao usuário criar um novo esquema dentro do banco de dados. A documentação oficial sobre quais outros privilégios de acesso você pode GRANTencontrar aqui .

Magnus Hagander
fonte