通常のユーザーがPostgreSQLでスキーマを作成できるようにするには何が必要ですか?


10

新しいデータベース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=> 

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

回答:


16

CREATEデータベースに対するユーザー権限を付与します。例:

GRANT CREATE ON DATABASE test TO eonil

このCREATE権限を既存のデータベースに適用すると、ユーザーはデータベース内に新しいスキーマを作成できます。他にどのようなアクセス権限を利用できるかについての公式ドキュメントGRANTこちらです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.