Izin pengguna untuk membuat PostgreSQL DB

24

Saya sedang bekerja di Ubuntu. Mengikuti adalah salah satu perintah saya.

$ psql -U kuser -d postgres

Kemudian ini terhubung ke database. Tetapi dari terminal postgres ketika saya mencoba

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

Ketika saya mencoba perintah serupa di Ubuntu, itu memberikan yang berikut

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

Bagaimana cara membuat DB ini? Saya memiliki hak sudo dan kuser bukan saya.

dinesh707
sumber

Jawaban:

44

Tampaknya Anda memiliki nama pengguna basis data kuser, tetapi tidak ada pengguna sistem dengan nama itu. Inilah sebabnya mengapa Anda bisa mendapatkan prompt postgres, tetapi sudo gagal.

Pengguna itu tidak dapat membuat database karena akun tidak memiliki createdbizin.

Anda dapat memberikan izin itu kepada pengguna menggunakan postgresakun (akun manajemen default di Ubuntu):

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

Atau cukup gunakan akun manajemen itu untuk membuat database dan tentukan bahwa itu dimiliki oleh kuserakun:

sudo -u postgres createdb -O kuser kdb

Jika pengguna itu tidak akan membuat database lain saya sarankan menggunakan opsi terakhir, lebih baik untuk membatasi hak istimewa yang diberikan ke akun.

qqx
sumber
sudo -u postgres psql -c 'alter user USER_NAME with createdb' postgresmenyelamatkan hari saya :)
AbdulMomen عبدالمؤمن