Autorizzazioni utente per la creazione di DB PostgreSQL


24

Sto lavorando su Ubuntu. Di seguito è riportato uno dei miei comandi.

$ psql -U kuser -d postgres

Quindi questo si collega al database. Ma dal terminale Postgres quando provo

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

Quando provo un comando simile in Ubuntu, si ottiene quanto segue

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

Come posso creare questo DB ?. Ho i diritti sudo e kuser non sono io.

Risposte:


44

Sembra che tu abbia un utente di database chiamato kuser, ma non esiste un utente di sistema con quel nome. Questo è il motivo per cui sei in grado di ottenere un prompt di Postgres, ma sudo fallisce.

Quell'utente non è in grado di creare un database perché l'account non dispone createdbdell'autorizzazione.

Puoi concedere tale autorizzazione all'utente utilizzando l' postgresaccount (l'account di gestione predefinito su Ubuntu):

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

Oppure utilizza semplicemente quell'account di gestione per creare il database e specificare che è di proprietà kuserdell'account:

sudo -u postgres createdb -O kuser kdb

Se quell'utente non sta creando altri database, ti consiglio di utilizzare quest'ultima opzione, meglio limitare i privilegi concessi all'account.


sudo -u postgres psql -c 'alter user USER_NAME with createdb' postgresmi ha salvato la giornata :)
AbdulMomen عبدالمؤمن il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.