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 serwera | Szybkość | Bezpieczeństwo | Ocena |
|---|---|---|---|
| Komputer lub serwer w sieci lokalnej biura | najszybciej | baza niewidoczna z internetu | zalecane |
| Ten sam serwer w biurze + praca z domu przez VPN | w biurze najszybciej, z domu wolniej | port bazy dostępny tylko w VPN | zalecane przy pracy zdalnej |
| Własny VPS lub serwer dedykowany, dostęp wyłącznie przez VPN | wolniej niż w biurze | zależy od administracji serwerem | dopuszczalne, gdy serwer musi stać poza biurem |
| Hosting współdzielony (baza „przy stronie www”) | bardzo wolno | baza wystawiona do internetu, brak kontroli nad serwerem | nie używać |
| Baza MariaDB/MySQL wystawiona do internetu bez VPN | wolno | port bazy atakowany z całego internetu | nie 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.