Quelle est la condition requise pour qu'un utilisateur normal puisse créer un schéma sur PostgreSQL?

10

J'ai créé une nouvelle base de données testet créé l'utilisateur 'eonil' avec cette commande:

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

sur mon PostgreSQL. Je cours psql -U eonil test. Lorsque j'ai essayé de créer un nouveau schéma, il affiche une erreur.

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

Pourquoi cela fait-il une erreur? Qu'est-ce qui est requis?

Eonil
la source

Réponses:

16

Accordez le CREATEprivilège utilisateur sur la base de données, par exemple

GRANT CREATE ON DATABASE test TO eonil

Le CREATEprivilège, lorsqu'il est appliqué à une base de données existante, permet à l'utilisateur de créer un nouveau schéma dans la base de données. La documentation officielle des autres privilèges d'accès que vous pouvez consulterGRANT est ici .

Magnus Hagander
la source