kontakt
Software house
>
Tag
>
PostgreSQL wykorzystanie i bezpieczeństwo
PostgreSQL

PostgreSQL wykorzystanie i bezpieczeństwo

Data wpisu
Mateusz Kuba
Autor
Mateusz Kuba

PostgreSQL jest to obiektowo-relacyjna baza danych. Dodatkowo rozpowszechniona przy wykorzystaniu licencji PostgreSQL, która jest bardzo podobna do MIT lub BSD. Rozszerza składnię SQL o dodatkowe funkcjonalności i jest bardzo często wykorzystywana w produkcyjnych rozwiązaniach, tam gdzie baza danych typu MySQL nie daje rady. Posiada wbudowanych wiele typów danych, takich jak chociażby JSONB, gdy potrzebujemy przechowywać w niej większe nieustrukturyzowane formacje danych bez potrzeby korzystania z rozwiązania NoSQL. Najczęstszym powodem wyboru właśnie PostgreSQL jest właśnie wsparcie dla wielu typów danych oraz pełne wsparcie dla transakcji typu ACID. W porównaniu do MySQL bardzo dobrze radzi sobie z rozbudowanymi zapytaniami, natomiast w przypadku prostych zapytań cechuje się podobną wydajnością. PostgreSQL posiada wbudowany mechanizm replikacji, który może być od razu wykorzystany. Poza tym daje możliwość budowania indeksów opartych o B-tree strukturę lub tabelę hash.

PostgreSQL posiada szeroką społeczność, która zapewnia jej wsparcie, a także posiada częste aktualizacje. Jest to najczęściej wykorzystywana baza danych dla serwerów web, aplikacji finansowych wymagających pełnego wsparcia ACID, a także wszystkich rozwiązań, gdzie wymagane jest długie nieprzerwane działanie i niezawodność

Bezpieczeństwo bazy danych w bazie danych PostgreSQL

Bezpieczeństwo danych zależy od tego jak skonfigurujemy nasz serwer na którym będzie składowany. Warto pamiętać o tym by na serwerze był ustawiony firewall, a komunikacja z bazą danych odbywała się poprzez TLS. W naszych rozwiązaniach bazujących na architekturze AWS dbamy o to by serwer PostgreSQL był w wydzielonej sieci prywatnej bez dostępu do niej bezpośrednio z internetu, a jedynie z sieci prywatnej z dostępem do internetu na którym ustawiony jest backend. Dodatkowo dbamy o to by backupy były zautomatyzowane i wykonywane raz dziennie. Dbając o bezpieczeństwo danych warto pokusić się o rozwiązanie typu master-slave, gdzie drugi serwer działałby albo w trybie read-only, albo był w pogotowiu do uruchomienia gdyby wersja master utraciła dostępność. Warto pamiętać by nie przechowywać kluczy takich jak hasło w repozytorium kodu Github, a jedynie w zmiennych środowiskowych przechowywanych w zaszyfrowanej formie. Warto pamiętać o haszowaniu kluczowych informacji przechowywanych w bazie danych takich jak chociażby hasła by nawet w przypadku wycieku danych nie były możliwe do odgadnięcia.