Gdzie umieścić serwer bazy danych — wydajność i bezpieczeństwo

Opublikowano

Przy pracy kilku osób na tych samych danych program łączy się z serwerem MariaDB (albo MySQL). Od tego, gdzie stoi ten serwer, zależy zarówno szybkość pracy, jak i bezpieczeństwo danych. Krótko:

Miejsce serweraSzybkośćBezpieczeństwoOcena
Komputer lub serwer w sieci lokalnej biuranajszybciejbaza niewidoczna z internetuzalecane
Ten sam serwer w biurze + praca z domu przez VPNw biurze najszybciej, z domu wolniejport bazy dostępny tylko w VPNzalecane przy pracy zdalnej
Własny VPS lub serwer dedykowany, dostęp wyłącznie przez VPNwolniej niż w biurzezależy od administracji serweremdopuszczalne, gdy serwer musi stać poza biurem
Hosting współdzielony (baza „przy stronie www”)bardzo wolnobaza wystawiona do internetu, brak kontroli nad serweremnie używać
Baza MariaDB/MySQL wystawiona do internetu bez VPNwolnoport bazy atakowany z całego internetunie używać

Dlaczego odległość serwera ma takie znaczenie

Otwarcie listy, zapis dokumentu czy przeliczenie miesiąca to nie jedno, a wiele kolejnych zapytań do bazy — przy większych operacjach setki i tysiące. Każde zapytanie czeka na odpowiedź serwera, więc o szybkości decyduje przede wszystkim czas odpowiedzi (opóźnienie sieci), a nie przepustowość łącza:

  • w sieci lokalnej odpowiedź przychodzi w ułamku milisekundy,
  • przez internet — zwykle w kilkanaście do kilkudziesięciu milisekund na każde zapytanie.

To samo działanie, które w biurze trwa chwilę, przez internet może trwać kilka–kilkanaście sekund. Szybsze łącze tego nie zmienia, bo opóźnienie wynika z odległości i liczby urządzeń po drodze.

Na hostingu współdzielonym dochodzi jeszcze to, że ten sam serwer obsługuje jednocześnie strony i bazy wielu innych klientów hostingu, a jego dostawca ogranicza liczbę połączeń i czas zapytań. Takie serwery są przygotowane pod strony internetowe, a nie pod program księgowy pracujący na bazie przez cały dzień.

Bezpieczeństwo danych

Baza programu zawiera komplet danych księgowych: księgi, rejestry VAT, dane kontrahentów, pracowników i list płac, a w biurze rachunkowym — dane wszystkich klientów biura.

Baza nie powinna być dostępna bezpośrednio z internetu. Port serwera bazy (domyślnie 3306) wystawiony do sieci publicznej jest stale skanowany i atakowany (próby odgadnięcia haseł, wykorzystanie luk w starszych wersjach serwera). Hosting współdzielony z dostępem do bazy z zewnątrz oznacza właśnie taki port — a do tego biuro nie ma wpływu na konfigurację serwera, jego aktualizacje, zabezpieczenia ani na to, kto i jak wykonuje jego kopie.

Biuro rachunkowe przetwarza dane osobowe klientów jako podmiot przetwarzający (umowa powierzenia, art. 28 RODO) i ma obowiązek stosować odpowiednie środki bezpieczeństwa (art. 32 RODO). Przy wyborze miejsca dla serwera bazy trzeba to wziąć pod uwagę — także to, czy dostawca serwera przetwarza dane na terenie UE i na jakich warunkach.

Zasady, które warto przyjąć

  • Serwer w sieci biura, port bazy otwarty w zaporze tylko dla sieci lokalnej (opis w instalacji serwera MariaDB).
  • Praca zdalna wyłącznie przez VPN (np. WireGuard, OpenVPN, wbudowany VPN routera biurowego) — komputer w domu łączy się z siecią biura, a port bazy pozostaje niewidoczny w internecie. Zobacz Praca zdalna.
  • Osobne konto bazy dla programu z mocnym hasłem i uprawnieniami tylko do bazy programu (nie konto root).
  • Aktualny serwer MariaDB — aktualizacje zawierają poprawki bezpieczeństwa.
  • Kopie zapasowe na innym dysku niż baza i dodatkowo poza biurem — zobacz Kopie bazy danych. Serwer bazy, nawet zewnętrzny, nie zastępuje kopii.

Gdy serwer ma stać poza biurem

Jeżeli nie ma możliwości postawienia serwera w biurze, rozwiązaniem jest serwer z własnymi, gwarantowanymi zasobami — VPS lub serwer dedykowany (co najmniej 2 GB RAM dla bazy, dysk SSD), możliwie blisko biura (centrum danych w Polsce), dostępny wyłącznie przez VPN. Program pracuje wtedy wolniej niż z serwerem w biurze, a za aktualizacje, zaporę i kopie takiego serwera odpowiada biuro albo osoba, której zlecono jego administrację.

Zarządzane bazy MariaDB/MySQL u dostawców chmurowych technicznie współpracują z programem (MariaDB od wersji 10.2.3, konto z pełnymi uprawnieniami do bazy programu — program sam zakłada i aktualizuje tabele), ale zwykle wymagają dostępu do bazy z internetu, więc dotyczą ich te same uwagi co bazy wystawionej do sieci publicznej.

TaxMachine nie prowadzi hostingu baz danych programu. Usługa Kopie w chmurze przechowuje wyłącznie zaszyfrowane kopie bazy — program nie pracuje na nich na bieżąco.

Przeniesienie bazy na inny serwer

Bazę z jednego serwera na drugi (albo z pliku SQLite na serwer) przenosi Konwersja baz danych. Przed przeniesieniem warto wykonać kopię bieżącej bazy, a po przeniesieniu wskazać nową bazę w konfiguracji bazy danych na każdym stanowisku.