web-dev-qa-db-ja.com

通常のユーザーが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=> 

なぜこれがエラーになるのですか?何が必要ですか?

10
Eonil

ユーザーに、データベースに対するCREATE特権を付与します。

GRANT CREATE ON DATABASE test TO eonil

CREATE特権を既存のデータベースに適用すると、ユーザーはデータベース内に新しいスキーマを作成できます。 GRANTで実行できるその他のアクセス権限の公式ドキュメントは here です。

16
Magnus Hagander