What's the required to make a normal user can create schema on PostgreSQL?

I created a new database test and created user 'eonil' with this command:

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

on my PostgreSQL. I run psql -U eonil test. When I tried to make a new schema, it shows an error.

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

Why does this make an error? What's required?


Solution 1:

Grant the user CREATE privilege on the database, e.g.

GRANT CREATE ON DATABASE test TO eonil

The CREATE privilege, when applied to an existing database, enables the User to create a new schema within the database. The official documentation for what other access privileges you can GRANT is here.