私はUbuntuに取り組んでいます。以下は私のコマンドの1つです。
$ 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は私ではありません。
kuser
というデータベースユーザーがいるようですが、その名前のシステムユーザーは存在しません。これがpostgresプロンプトを取得できる理由ですが、Sudoは失敗します。
アカウントにcreatedb
権限がないため、そのユーザーはデータベースを作成できません。
postgres
アカウント(Ubuntuのデフォルトの管理アカウント)を使用して、ユーザーにその権限を付与することができます。
Sudo -u postgres psql -c 'alter user kuser with createdb' postgres
または、その管理アカウントを使用してデータベースを作成し、kuser
アカウントによって所有されていることを指定します。
Sudo -u postgres createdb -O kuser kdb
そのユーザーが他のデータベースを作成しない場合は、後者のオプションを使用することをお勧めします。アカウントに付与される特権を制限することをお勧めします。