PostgreSQL DBを作成するためのユーザ権限


22

私はUbuntuに取り組んでいます。以下は私のコマンドの一つです。

$ psql -U kuser -d postgres

その後、これはデータベースに接続します。しかしpostgres端末からは試してみると

postgres=> CREATE DATABASE kdb;
ERROR:  permission denied to create database

Ubuntuで同じようなコマンドを試すと、次のようになります。

$ sudo -u kuser createdb kdb
sudo: unknown user: kuser
sudo: unable to initialize policy plugin

このDBを作成する方法私はsudo権限を持っています、そしてkuserは私ではありません。

回答:


42

データベースユーザーが kuserしかし、その名前のシステムユーザーはいません。これが、あなたがそのユーザとしてpostgresプロンプトを受け取ることができる理由ですが、sudoは失敗します。

そのアカウントには必要な権限がないため、そのユーザーはデータベースを作成できません。

次のいずれかを使用して、その許可をユーザーに付与できます。 postgres Ubuntuのデフォルト管理アカウントであるアカウント:

sudo -u postgres psql -c 'alter user kuser with createdb' postgres

または、その管理アカウントを使用してデータベースを作成し、そのアカウントを所有していることを指定することもできます。 kuser アカウント:

sudo -u postgres createdb -O kuser kdb

そのユーザーが他のデータベースを作成する予定がない場合は、後者のオプションを使用することをお勧めします。アカウントに付与される権限を制限することをお勧めします。


sudo -u postgres psql -c 'alter user USER_NAME with createdb' postgres 私の日を救った:)
AbdulMomen عبدالمؤمن
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.