PostgreSQLのユーザーアカウントにデータベースを作成および削除する機能を付与するにはどうすればよいですか? GRANT
でこれを行う方法はありますか?
ALTER USER username CREATEDB;
で完了
ドキュメントのALTER USER を参照してください。
データベースを削除するには、スーパーユーザーである(ALTER USER
でも付与できる)か、データベースを所有している必要があります。
まず、postgresユーザーとしてログインする必要があります。
$ Sudo -u postgres psql postgres
# \password postgres
Enter new password:
Postgresユーザー(PostgreSQLの特別な種類のユーザー)の新しいパスワードを入力すると、postgresとしてログインし、他のユーザーに権限を付与できます。 user1という名前のユーザーがいるとします。彼にデータベースを作成および削除する機能を付与するには、次のように(postgresユーザーとして)作成する必要があります。
ALTER USER user1 CREATEDB;
お役に立てれば...
コマンドラインクライアントを使用してPGサーバーにログインした後、createユーザー(postgres
ユーザーのように、UNIXのデフォルトでシステムのスーパーユーザーは$ Sudo -u postgres psql postgres
)を使用して簡単に偽装できます。
CREATE ROLE user_name PASSWORD 'tYPe_YoUr_PaSSwOrD' NOSUPERUSER CREATEDB CREATEROLE INHERIT LOGIN;
postgres
ユーザーのように推奨)。PGバイナリ(アプリケーション)も使用できます。たとえば、上記のSQLは次を実行することと同等です。
Sudo -u postgres createuser --createdb --createrole --pwprompt user_name
コマンドラインクライアントを使用してPGサーバーにログインした後、alterユーザー(postgres
ユーザーのように、UNIXのデフォルトではシステムのスーパーユーザーは$ Sudo -u postgres psql postgres
)を使用して簡単に偽装できます。
ALTER USER user_name CREATEDB;
または、上記の例と同じ権利を与えるには:
ALTER USER user_name CREATEDB CREATEROLE LOGIN;