Ich möchte einen Benutzer erstellen, der nur Zugriff auf eine bestimmte Datenbank hat. Es sollte jedoch alle Erlaubnis haben. Ich benutze Postgresql 9.5 unter Ubuntu 14.04. Als erstes erstelle ich einen neuen Benutzer:
$createuser --interactive joe
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) n
Als nächstes erstelle ich eine neue Datenbank mit Besitzer Joe:
$sudo -u postgres psql
$CREATE DATABASE myDB OWNER joe;
$GRANT ALL ON DATABASE myDB TO joe;
Danach versuche ich mich mit dem Benutzer joe zu verbinden, um eine Verbindung zu meiner Datenbank myDB herzustellen:
$psql myDB -U joe
psql: FATAL: Peer authentication failed for user "joe"
Was muss ich als nächstes tun?
postgresql
privileges
Qeychon
quelle
quelle
Antworten:
Öffnen Sie
/etc/postgresql/9.5/main/pg_hba.conf
mit Root-ZugriffÄndern Sie
peer
zumd5
in diesen Zeilen.Vor dem Umsteigen
Nach deinem Wechsel
Speichern Sie die Datei mit Ctrl- O. Verlasse nano mit Ctrl-X
Starten Sie postgresql mit neu
quelle
sudo -u postgres psql -c "SHOW config_file"
host all all 127.0.0.1/32 ident
,host all all ::1/128 ident