Benutzerberechtigungen zum Erstellen von PostgreSQL DB

24

Ich arbeite an Ubuntu. Folgendes ist einer meiner Befehle.

$ psql -U kuser -d postgres

Dann wird eine Verbindung zur Datenbank hergestellt. Aber vom Postgres-Terminal, wenn ich es versuche

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

Wenn ich einen ähnlichen Befehl in Ubuntu versuche, gibt es folgendes

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

Wie erstelle ich diese DB? Ich habe sudo rechte und kuser geht mir nicht.

dinesh707
quelle

Antworten:

44

Anscheinend haben Sie einen Datenbankbenutzer namens kuser, aber es gibt keinen Systembenutzer mit diesem Namen. Aus diesem Grund können Sie eine Postgres-Eingabeaufforderung erhalten, aber sudo schlägt fehl.

Dieser Benutzer kann keine Datenbank erstellen, da das Konto nicht über die createdbBerechtigung verfügt.

Sie können dem Benutzer diese Berechtigung entweder über das postgresKonto (das Standardverwaltungskonto unter Ubuntu) erteilen :

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

Oder verwenden Sie einfach dieses Verwaltungskonto, um die Datenbank zu erstellen und anzugeben, dass das kuserKonto Eigentümer ist :

sudo -u postgres createdb -O kuser kdb

Wenn dieser Benutzer keine anderen Datenbanken erstellen möchte, empfehle ich die Verwendung der letzteren Option, um die Berechtigungen, die dem Konto gewährt werden, zu begrenzen.

qqx
quelle
sudo -u postgres psql -c 'alter user USER_NAME with createdb' postgreshat meinen Tag gerettet :)
AbdulMomen عبدالمؤمن