Postgres - instalacja

Zaczęłam czytać: Anthony De Barros “Practical SQL: A Beginner Guide to Storytelling with Data”. Wszystkie zawarte w książce przykłady dotyczą systemu Postgresql. Uznałam więc, że czas zainstalować postgresa.
Chcę przyjrzeć się bliżej samemu postgresowi, a w trakcie czytania trochę się pobawić danymi. Muszę też koniecznie przypomnieć sobie SQL-a. To plan na październik.
Instalacja
Kroki potrzebne do instalacji w zasadzie ograniczają się do zainstalowania dwóch pakietów; polecenia systemctl
to sprawdzienie statusu serwera (który jest uruchamiany razem z kilkoma procesami pomocniczymi):
|
|
Administracja
Administracja bazami danych (tworzenie, usuwanie, tworzenie użytkowników, nadawanie uprawnień) odbywa się po zalogowaniu jako użytkownik uprzywilejowany postgres
:
|
|
Do interakcji z systemem bazy danych używam klienta psql
, który może być używany w trybie pojedyńczego polecnia, np:
Zmiana hasła usera postgres
Teraz mogę na przykład zmienić hasło użytkownika postgres
psql -c "alter user postgres with password 'Che7Thi!'"
Uzyskanie informacji o bieżącym połączeniu:
psql -c "\conninfo"
Mogę też używać psql
jako interaktywnego klienta; po uruchomieniu “powłoki” psql
mam dostęp
- zarówno do “wewnętrznych” poleceń (z przedrostkiem “"), np.:
psql -c "\?"
- jak i do zwykłych poleceń sql, np:
psql -c "\help create"
Utworzenie nowej bazy
Po uruchommieniu psql
tworzę bazę analysis i użytkownika analysisuser z hasłem, które będzie zaszyfrowane:
CREATE DATABASE analysis;
CREATE USER analysisuser WITH ENCRYPTED PASSWORD 'hae0Eis]';
… oraz nadaję temu użytkownikowi wszystkie przywileje względem bazy analysis:
GRANT ALL PRIVILEGES ON DATABASE analysis TO analysisuser;
-
Tworzenie użytkownika alice z hasłem s3cr3tp@ss i bazy app1 której alice jest właścicielem. Ustalam też algorytm szyfrowania hasła:
sudo -u postgres psql postgres
SET password_encryption = 'scram-sha-256';
CREATE USER alice PASSWORD 's3cr3tp@ss';
CREATE DATABASE app1 OWNER alice;
Połączenie z bazą danych
Próba połączenia się z bazą danych jako użytkownik analysis
:
psql -W -U analysisuser analysis
daje błąd
|
|
Okazuje się, że domyślny sposób identyfikacji przy połączeniach lokalnych (peer) daje dostęp do bazy użytkownikowi, który jest właścicielem procesu klienta (nazwa użytkownika jest pobierana z kernela). Jeśli więc jestem użytkownikiem karma, to nie mogę się dostać do bazy jako użytkownik analysisuer.
Zmieniam więc odpowiedni wpis w pliku konfiguracyjnym /etc/postgresql/13/main/pg_hba.conf
|
|
na
|
|
I restartuję serwer:
|
|
Instalacja pgadmin
W ubuntu nie ma gotowego pakietu z pgadmin
, więc aby zainstalować pgadmin
, postępuję zgodnie z zaleceniami:
- Dodaję klucz publiczny służący do weryfikacji repozytorium z pakietami:
|
|
- Dodaję pakiet właściwy dla mojej wersji ubuntu (o! przy okazji odkrywam sposób na ustalenie swojej wersji systemu:
lsb_release
) do listy źródeł dla systemu zarządzania pakietamiapt
i aktualizuję bazę apt-a:
|
|
- Instalacja pgadmin (wersja desktop):
|
|
- Uruchomienie: tutaj musiałam sprawdzić, jakie pliki zostały zainstalowane w systemie i czy są w śród nich pliki wykonywalne (
dpkg -L pgadmin4-desktop
):
|
|
… i już można się bawić!
Pgadmin - użycie
Pgadmin pyta o hasło główne, którego użyje do zaszyfrowania haseł dostępu do baz danych, do których będę się łączyć przy pomocy pgadmina. Dzięki temu hasła nie będą zapisywane na dysk.

Mogę połączyć się z bazą i spojrzeć na panel administracyjny:
Mogę utworzyć tabelę i sprawdzić DDL:
Mogę już uruchamiać zapytania:
Przygotowania zakończone
Wszystko gotowe, więc zanurzam się głębiej!
Ten wpis jest częścią serii sql.
- 2021-04-11 - Postgres - daty
- 2021-16-10 - Postgres - krótka analiza danych dot. zajęć dodatkowych
- 2021-04-10 - Postgres - JSON
- 2021-04-10 - Postgres - ćwiczenia
- 2021-30-09 - Postgres - instalacja