Permisos de usuario para crear DB DB de PostgreSQL

24

Estoy trabajando en Ubuntu El siguiente es uno de mis comandos.

$ psql -U kuser -d postgres

Entonces esto se conecta a la base de datos. Pero desde el terminal de Postgres cuando lo intento

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

Cuando intento un comando similar en Ubuntu, me da lo siguiente

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

¿Cómo creo este DB? Tengo derechos de sudo y kuser no soy yo.

dinesh707
fuente

Respuestas:

44

Parece que tiene un usuario de base de datos llamado kuser, pero no hay ningún usuario del sistema con ese nombre. Es por eso que puede obtener un mensaje de postgres, pero sudo falla.

Ese usuario no puede crear una base de datos porque la cuenta no tiene el createdbpermiso.

Puede otorgar ese permiso al usuario que usa la postgrescuenta (la cuenta de administración predeterminada en Ubuntu):

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

O simplemente use esa cuenta de administración para crear la base de datos y especifique que es propiedad de la kusercuenta:

sudo -u postgres createdb -O kuser kdb

Si ese usuario no va a crear otras bases de datos, le aconsejo que use la última opción, mejor limitar los privilegios que se otorgan a la cuenta.

qqx
fuente
sudo -u postgres psql -c 'alter user USER_NAME with createdb' postgressalvó mi día :)
AbdulMomen عبدالمؤمن