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.