Wyszukiwanie w witrynie

Jak zainstalować bazę danych PostgreSQL w Debianie 10


PostgreSQL (czasami określany jako Postgres) to najbardziej zaawansowany system baz danych ogólnego przeznaczenia i obiektowo-relacyjnego typu open source o sprawdzonej architekturze, który działa na wszystkich głównych systemach operacyjnych. Jest to wysokowydajny, stabilny, skalowalny i rozszerzalny system baz danych, który zapewnia niesamowitą integralność danych i obsługuje potężne dodatki.

Co ważne, PostgreSQL umożliwia definiowanie własnych typów danych, dodawanie niestandardowych funkcji, a nawet pisanie kodu z różnych języków programowania, takich jak C/C++, Java itp., bez konieczności ponownej kompilacji bazy danych.

PostgreSQL jest używany przez znane firmy technologiczne, takie jak Apple, Fujitsu, Red Hat, Cisco, Juniper Network itp.

W tym artykule pokażemy jak zainstalować, zabezpieczyć i skonfigurować serwer baz danych PostgreSQL w Debianie 10.

Wymóg:

  1. Zainstaluj minimalny serwer Debian 10 (Buster).

Instalowanie serwera PostgreSQL na Debianie 10

Aby zainstalować serwer bazy danych PostgreSQL, użyj domyślnego menedżera pakietów APT, który zainstaluje serwer i klienta PostgreSQL 11.

apt install postgresql-11 postgresql-client-11

W Debianie, jak w każdym innym demonie, baza danych Postgres jest inicjowana natychmiast po zakończeniu instalacji pakietu, jak pokazano na poniższym zrzucie ekranu.

Aby sprawdzić, czy baza danych Postgres jest rzeczywiście zainicjowana, możesz użyć narzędzia pg_isready, które sprawdza stan połączenia serwera PostgreSQL w następujący sposób.

pg_isready 

Poza tym w systemd usługa Postgres jest również uruchamiana automatycznie i włączana przy starcie systemu. Aby upewnić się, że usługa działa poprawnie, uruchom następujące polecenie.

systemctl status postgresql

Poniżej znajdują się inne przydatne polecenia systemctl do zarządzania usługą Postgres w systemied.

systemctl start postgresql
systemctl restart postgresql
systemctl stop postgresql
systemctl reload postgresql 		#this reloads the service configuration

Zabezpieczanie i konfiguracja bazy danych PostgreSQL

Domyślnie Postgres wykorzystuje koncepcję ról do zarządzania uprawnieniami dostępu do bazy danych, a role w bazie danych są koncepcyjnie całkowicie oddzielone od użytkowników systemu operacyjnego. Rolą może być użytkownik lub grupa, a rola posiadająca prawo logowania nazywana jest użytkownikiem.

Świeżo zainicjowany system zawsze zawiera jedną predefiniowaną rolę o nazwie postgres, ma ona taką samą nazwę jak konto użytkownika systemu operacyjnego o nazwie postgres, które służy do uzyskiwania dostępu do psql (Powłoka Postgres) i inne programy bazodanowe.

Konto użytkownika systemu Postgres nie jest chronione hasłem, aby je zabezpieczyć, możesz utworzyć hasło za pomocą narzędzia passwd.

passwd postgres

Ponadto rola Postgres (lub administrator bazy danych, jeśli chcesz) nie jest domyślnie zabezpieczona. Trzeba je także zabezpieczyć hasłem. Teraz przełącz się na konto użytkownika systemu postgres i rolę postgres (pamiętaj o ustawieniu silnego i bezpiecznego hasła), jak pokazano.

su - postgres
psql -c "ALTER USER postgres WITH PASSWORD 'securepass_here';"

Następnie wyjdź z konta postgres, aby kontynuować korzystanie z przewodnika.

Konfigurowanie uwierzytelniania klienta

Główny plik konfiguracyjny Postgres znajduje się w /etc/postgresql/11/main/postgresql.conf. Oprócz tego pliku Postgres używa dwóch innych ręcznie edytowanych plików konfiguracyjnych, które kontrolują uwierzytelnianie klienta.

Uwierzytelnianie klienta jest kontrolowane przez plik konfiguracyjny /etc/postgresql/11/main/pg_hba.conf. Postgres zapewnia wiele różnych metod uwierzytelniania klientów, w tym uwierzytelnianie oparte na hasłach. Połączenia klienckie są uwierzytelniane na podstawie adresu hosta klienta, bazy danych i użytkownika.

Jeśli zdecydujesz się na uwierzytelnianie oparte na haśle, możesz zaimplementować jedną z tych metod: md5 lub hasło, które działają podobnie, z wyjątkiem sposobu przesyłania hasła przez połączenie , czyli odpowiednio zahaszowany MD5 i zwykły tekst.

Korzystanie z uwierzytelniania hasłem md5 zapobiega podsłuchiwaniu haseł przez hakerów i pozwala uniknąć przechowywania haseł na serwerze w postaci zwykłego tekstu. Metody hasła można bezpiecznie używać tylko wtedy, gdy połączenie jest chronione szyfrowaniem SSL.

W tym przewodniku pokażemy, jak skonfigurować uwierzytelnianie hasłem md5 na potrzeby uwierzytelniania klienta.

vim /etc/postgresql/11/main/pg_hba.conf 

Poszukaj poniższej linii i zmień metodę uwierzytelniania na md5, jak pokazano na zrzucie ekranu.

local   all             all                                     md5

Zapisz zmiany w pliku i wyjdź z niego. Następnie zastosuj najnowsze zmiany, ponownie uruchamiając usługę Postgres w następujący sposób.

systemctl restart postgresql

Tworzenie nowej bazy danych i roli/użytkownika bazy danych w PostgreSQL

W tej ostatniej sekcji pokażemy, jak utworzyć nowego użytkownika bazy danych i rolę bazy danych do zarządzania nim. Najpierw przejdź na konto postgres i otwórz powłokę Postgres w następujący sposób.

su - postgres
psql

Aby utworzyć bazę danych o nazwie „test_db ”, uruchom następujące polecenie SQL.

postgres=# CREATE DATABASE test_db;

Następnie utwórz użytkownika bazy danych (rola z uprawnieniami do logowania), który będzie zarządzał nową bazą danych w następujący sposób.

postgres=#CREATE USER test_user PASSWORD ‘securep@ss_here’;     #assumes login function by default

Aby połączyć się z test_db jako użytkownik test_user, uruchom następujące polecenie.

 
psql -d  test_db  -U test_user

Więcej informacji można znaleźć w dokumentacji PostgreSQL 11.

Wniosek

To tyle, jeśli na razie! W tym przewodniku pokazaliśmy, jak zainstalować, zabezpieczyć i skonfigurować serwer baz danych PostgreSQL w Debianie 10. Czy masz jakieś pytania lub przemyślenia, którymi chcesz się podzielić? Skorzystaj z poniższego formularza komentarza, aby się z nami skontaktować.