I nie potrafię/nie rozumiem jak mam stworzyć konto żeby połączyć się z tą bazą danych.
Usera tworzę tak: createuser devise_gem_app -W ustawiam na superusera, i wpisuje haslo: devise_gem_app, ale ciągle dostaje jak chce stworzyc baze danych rake db:migrate, dostaje zwrotke że nie może połączyć:
PG::ConnectionBad: FATAL: password authentication failed for user "devise_gem_app"
FATAL: password authentication failed for user "devise_gem_app"
Najprawdopodobniej nieprawidłowo hasło podajesz na etapie tworzenia użytkownika.
Tam chyba dosyć istotne było, by hasło było umieszczone pomiędzy " " . Sprawdź najlepiej w dokumentacji i przykładach.
Najlepiej sprawdź, czy możesz takim kontem i takim hasłem się łączyć z serwerem bazy danych
su - postgres
psql -d template1 -U postgres
template1=# CREATE USER devise_gem_app WITH PASSWORD 'devise_gem_app';
template1=# CREATE DATABASE devise_gem_app_development;
(i kolejne)
template1=# GRANT ALL PRIVILEGES ON DATABASE devise_gem_app_development to devise_gem_app;
template1=# \q
su - postgres
psql -d template1 -U postgres
template1=# CREATE USER devise_gem_app WITH PASSWORD 'devise_gem_app';
template1=# CREATE DATABASE devise_gem_app_development;
(i kolejne)
template1=# GRANT ALL PRIVILEGES ON DATABASE devise_gem_app_development to devise_gem_app;
template1=# \q
Podziałało dzięki wielkie, szkoda tylko że trzeba grzebać bezpośrednio w postgres, a niema tu wsparcia od strony railsów. Bo spędziłęm wczoraj 2 godziny na szukaniu rozwiązania i go nie znalazłem. A zdaje się że tworzenie nowego konta do każdego projektu jest powszechnie stosowaną, “dobrą praktyką” choć nie wiem jeszcze dlaczego.
Ja uważam, że jeżeli jedno konto (nie ważne czy to konto bazy danych, czy konto systemowe użytkownika) zostanie skompromitowane, to szkoda by było, aby dotknęło to wszystkie aplikacje. Zakładamy oczywiście, że system został nietknięty, gdyż w przeciwnym wypadku musimy zakładać, że możemy mieć wszędzie niechciany kod.
Ok, jeżeli masz bazę słuchającą tylko na localhost. Masz dobrze zabezpieczony system i masz pełną świadomośc tego w jaki sposób się zabezpieczyłeś przed przejęciem konta, to ok. Nie widzę problemu, żeby mieć jednego użytkownika na kilka aplikacji. IMO to jest kwestia kalkulacji ryzyka. Pół biedy, jeżeli możesz sobie pozwolić na przestój kilku aplikacji przez pewien czas, który będzie wymagany na przywrócenie systemu/kont/aplikacji - to jest inna historia na temat tego w jaki sposób działamy po wykryciu włamania.
Jeżeli robisz tylko robisz dla zabawy i się na tym uczysz - spoko, niech to będzie jeden użytkownik bazy danych na jednym koncie systemowym.