
Ich folge diesem Tutorial und führe, als Postgres angemeldet, Folgendes aus:
createuser --interactive
angegebener Name und ausgewählter Superuser
Dann:
createdb dogspot
aber beim Versuch
sudo -i -u dogspot
Ich bekomme:
postgres@ip-172-31-12-126:/home/ubuntu$ sudo -i -u dogspot
sudo: unknown user: dogspot
sudo: unable to initialize policy plugin
aber der Benutzer existiert mit Sicherheit, denn wenn ich versuche, einen neuen Benutzer zu erstellen, wird eine Meldung angezeigt, dass bereits einer existiert. Einige Hinweise, wie man es richtig macht, wären willkommen.
DB-Version:
psql (PostgreSQL) 9.3.4
OS Version:
Ubuntu 14.04 LTS
AKTUALISIEREN:
anscheinend war alles nötig, um vorher einen Linux-Benutzer mit entsprechendem Namen zu erstellen:
sudo useradd -d /home/dogspot -m dogspot
sudo passwd dogspot
Antwort1
Sie verwechseln PostgreSQL-Benutzer und Betriebssystembenutzer.
Ein PostgreSQL-Benutzer kann ohne einen entsprechenden Betriebssystembenutzer existieren.
Standardmäßig verwenden Verbindungen peer
eine Authentifizierung. Dabei müssen Sie als Betriebssystembenutzer mit demselben Namen wie der PostgreSQL-Benutzer ausgeführt werden, mit dem Sie eine Verbindung herstellen möchten.Sie können das pg_hba.conf
jedoch ändern in, für alle Benutzer oder nur für einige Benutzer/DBs. Weitere Einzelheiten finden Sie imClient-AuthentifizierungKapitel.