Właśnie zainstalowałem postgres 8.4 na Ubuntu 9.10 i nigdy nie poprosił mnie o utworzenie superużytkownika. Czy istnieje domyślny administrator i jego hasło? Jeśli nie, jak mogę utworzyć nowy?
postgresql
user-management
Thierry Lam
źródło
źródło
Odpowiedzi:
UWAGA Odpowiedź na temat zmiany hasła UNIX dla „postgres” na „$ sudo passwd postgres” nie jest preferowana, a nawet może być NIEBEZPIECZNA !
Oto dlaczego: Domyślnie konto „postgres” w systemie UNIX jest zablokowane, co oznacza, że nie można się zalogować przy użyciu hasła. Jeśli użyjesz „sudo passwd postgres”, konto zostanie natychmiast odblokowane. Co gorsza, jeśli ustawisz hasło na coś słabego, na przykład „postgres”, to będziesz narażony na wielkie niebezpieczeństwo bezpieczeństwa. Na przykład istnieje wiele botów próbujących zalogować się do systemu UNIX w kombinacji nazwy użytkownika / hasła „postgres / postgres”.
Powinieneś postępować zgodnie z odpowiedzią Chrisa Jamesa :
Aby to trochę wyjaśnić. Zwykle są dwa domyślne sposoby logowania do serwera PostgreSQL:
Uruchamiając komendę „psql” jako użytkownik systemu UNIX (tak zwane uwierzytelnianie IDENT / PEER), np
sudo -u postgres psql
. : Zauważ, żesudo -u
NIE odblokowuje użytkownika UNIX.przez połączenie TCP / IP z wykorzystaniem zarządzanej nazwy użytkownika / hasła PostgreSQL (tak zwane uwierzytelnianie TCP) (tj. NIE hasła UNIX).
Dlatego nigdy nie chcesz ustawiać hasła do konta UNIX „postgres”. Pozostaw domyślnie zablokowane.
Oczywiście wszystko może się zmienić, jeśli skonfigurujesz go inaczej niż ustawienie domyślne. Na przykład można zsynchronizować hasło PostgreSQL z hasłem UNIX i zezwalać tylko na lokalne logowanie. To wykraczałoby poza zakres tego pytania.
źródło
/etc/shadow
to miejsce, w którym przechowywane jest hasło @lzap.Wpisz w wierszu polecenia:
Zobaczysz:
źródło
Manipulujesz postgres za pośrednictwem użytkownika
postgres
, ponieważ:źródło
su
użytkownika postgres bez podawania hasła. W większości systemów konto Postgres Unix jest zablokowane (hasło nie będzie działać), co oznacza, że tylko root możesu
do tego konta.sudo
zamiastsu
.sudo su - postgres
: \sudo -u postgres
.W systemie Windows wykonaj następujące czynności (WAŻNE: użyj konta administratora systemu Windows ):
Po instalacji otwórz
<PostgreSQL PATH>\data\pg_hba.conf
.Zmodyfikuj te dwa wiersze i zmień „md5” na „trust”:
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
Uruchom ponownie usługę PostgreSQL (może nie być to konieczne).
(Opcjonalnie) Otwórz wiersz polecenia i zmień stronę kodową na 1252:
cmd.exe /c chcp 1252
Zaloguj się do PostgreSQL. Nie będzie potrzebne hasło (zwróć uwagę na parametr -U wielkich liter):
psql -U postgres
(Opcjonalnie, zalecane ze względów bezpieczeństwa) Zmień
postgres
hasło użytkownika:\password postgres
i zmień „zaufanie” z powrotem na „md5” w
pg_hba.conf
.źródło
Jeśli próbujesz uzyskać dostęp do powłoki PostgreSQL, możesz wpisać:
psql -U postgres my_database
Gdzie
my_database
jest nazwa twojej bazy danych.źródło