Chcę utworzyć użytkownika, który ma dostęp tylko do określonej bazy danych. Powinien jednak mieć wszystkie uprawnienia. Używam Postgresql 9.5 na Ubuntu 14.04. Przede wszystkim tworzę nowego użytkownika:
$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
Następnie tworzę nową bazę danych z właścicielem Joe:
$sudo -u postgres psql
$CREATE DATABASE myDB OWNER joe;
$GRANT ALL ON DATABASE myDB TO joe;
Następnie próbuję połączyć się z użytkownikiem Joe, aby połączyć się z moją bazą danych myDB:
$psql myDB -U joe
psql: FATAL: Peer authentication failed for user "joe"
Co mam teraz zrobić?
postgresql
privileges
Qeychon
źródło
źródło
Odpowiedzi:
Otwórz
/etc/postgresql/9.5/main/pg_hba.conf
z dostępem rootaZmień
peer
namd5
w tych wierszach.Przed zmianą
Po twojej zmianie
Zapisz plik, naciskając Ctrl- O. Wyjdź z nano za pomocą Ctrl-X
Uruchom ponownie postgresql przy użyciu
źródło
sudo -u postgres psql -c "SHOW config_file"
host all all 127.0.0.1/32 ident
,host all all ::1/128 ident