MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

Zabezpieczanie kopii zapasowych MySQL:przewodnik

Jeśli kiedykolwiek korzystałeś z MySQL, prawdopodobnie wykonałeś kopie zapasowe swojej bazy danych. Jeśli wykonałeś kopie zapasowe swojej bazy danych, prawdopodobnie przynajmniej raz pomyślałeś o tym, jak możesz je zabezpieczyć. W tym poście na blogu powiemy Ci, jak dokładnie to zrobić.

Dlaczego powinieneś zabezpieczyć swoje kopie zapasowe MySQL?

Zanim powiemy Ci, jak powinieneś zabezpieczyć swoje kopie zapasowe MySQL, powinniśmy prawdopodobnie powiedzieć Ci, dlaczego powinieneś je zabezpieczyć. Co w ogóle rozumiemy przez „zabezpieczenie” kopii zapasowych MySQL? Kopie zapasowe MySQL powinny być domyślnie bezpieczne, prawda? Niestety nie wszystko jest takie proste, jak się wydaje. Aby wykonywać i utrzymywać bezpieczne kopie zapasowe MySQL, należy wziąć pod uwagę następujące rzeczy:

  1. Bezpiecznie bierz swoje kopie zapasowe MySQL

  2. Bezpieczne przechowywanie kopii zapasowych MySQL

  3. Bezpieczne przesyłanie kopii zapasowych MySQL

Teraz oczywiście łatwiej to powiedzieć niż zrobić, ale przedstawimy kilka ogólnych porad, które mogą poprowadzić Cię we właściwym kierunku.

Zabezpieczanie kopii zapasowych MySQL

  1. Aby bezpiecznie wykonywać kopie zapasowe MySQL, używając na przykład mysqldump, rozważ wprowadzenie nazwy użytkownika i hasła Użytkownik MySQL wewnątrz my.cnf. Możesz nawet utworzyć plik .my.cnf w swoim katalogu domowym, przechowywać tam nazwę użytkownika i hasło, a następnie użyć opcji --defaults-extra-file, aby poinformować MySQL, aby odczytał ten plik po globalnym pliku opcji:

    [mysqldump]
    user=demo_user
    password=demo_password

    W ten sposób nie musisz już podawać swojego hasła MySQL podczas uruchamiania mysqldump - umieszczając swoją nazwę użytkownika i hasło w my.cnf, sprawisz, że Twoje hasło będzie niewidoczne dla nikogo poza administratorami baz danych.

  2. Rozważ przyjrzenie się mysqldump-secure:jest to zgodny z POSIX skrypt opakowujący dla mysqldump z możliwościami szyfrowania. Narzędzie może tworzyć kopie zapasowe baz danych w osobnych plikach. Bazy danych można również umieścić na czarnej liście przed tworzeniem kopii zapasowych. Narzędzie może również szyfrować bazy danych MySQL, a także samosprawdza się, co oznacza, że ​​jeśli coś pójdzie nie tak, poinformuje Cię, co się stało i jak to naprawić, więc jeśli szukasz alternatywy dla mysqldump, zdecydowanie rozważ nadanie mu spróbuj.

  3. Po wykonaniu kopii zapasowej instancji bazy danych MySQL lub MariaDB rozważ jej zaszyfrowanie. Możliwe, że dane są jednym z najcenniejszych zasobów Twojej organizacji, a szyfrując je, możesz mieć pewność, że są odpowiednio chronione. Na szczęście szyfrowanie kopii zapasowych MySQL nie jest zbyt skomplikowane i można to zrobić na kilka sposobów, w tym zaszyfrować plik lokalny i zaszyfrować kopię zapasową w locie. Aby zaszyfrować lokalną kopię swojej kopii zapasowej, po prostu wykonaj kopię zapasową danych przechowywanych w MySQL, a następnie zaszyfruj ją za pomocą, na przykład, OpenSSL (zastąp hasło hasłem, którego chcesz użyć):

    $ openssl enc -aes-256-cbc -salt -in backup.tar.gz -out backup.tar.gz.enc -k password

    Twoja kopia zapasowa może zostać odszyfrowana, uruchamiając:

    $ openssl aes-256-cbc -d -in backup.tar.gz.enc -out backup.tar.gz -k password


    Możesz także rozważyć szyfrowanie kopii zapasowych w locie. Aby to zrobić, ogólnie rzecz biorąc, musisz wdrożyć szyfrowanie podczas generowania kopii zapasowej (tj. Wygenerować kopię zapasową, skompresować ją i zaszyfrować). Oto jak to zrobić dla MySQL za pomocą mysqldump (twoja kopia zapasowa będzie nazywać się zaszyfrowana_kopia zapasowa.xb.enc):

    mysqldump --all-databases --single-transaction --triggers --routines | gzip | openssl  enc -aes-256-cbc -k password > encrypted_backup.xb.enc

    Możesz również zaszyfrować swoje kopie zapasowe za pomocą ClusterControl:po prostu zaznacz pola „Użyj kompresji” i (lub) „Włącz szyfrowanie” w ostatnim etapie tworzenia kopii zapasowej i gotowe . Tak, to takie proste!
     

Możesz również zajrzeć do skryptu powłoki o nazwie mysql_secure_installation (lub mariadb_secure_installation, jeśli używasz MariaDB). Skrypt umożliwia:

  • Ustaw hasło dla kont root MySQL.

  • Usuń konta root, które są dostępne spoza hosta lokalnego.

  • Usuń wszystkie anonimowe konta użytkowników i testową bazę danych, do których dostęp mają anonimowi użytkownicy.

Jeśli wdrażasz MySQL lub MariaDB za pomocą ClusterControl, coś, co możesz zrobić swobodnie w Community Edition, proces wdrażania automatycznie zajmie się tymi środkami bezpieczeństwa.

Podsumowanie

Jeśli chodzi o zabezpieczanie kopii zapasowych MySQL, lista rzeczy, które możesz zrobić, jest dość długa. Mamy nadzieję, że ten wpis na blogu dał Ci kilka pomysłów na to, co możesz zrobić, aby zabezpieczyć swoje kopie zapasowe MySQL lub MariaDB:ogólnie rzecz biorąc, kopie zapasowe można zabezpieczyć, uniemożliwiając obserwowanie hasła po wywołaniu mysqldump, również podczas szyfrowania kopii zapasowych lokalnie lub w sieci. w locie.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zainstalować MariaDB 10 na RHEL 8?

  2. Łatwe tworzenie zapory SQL dzięki ClusterControl i ProxySQL

  3. Jak odzyskać klaster Galera lub replikację MySQL z zespołu rozszczepionego mózgu?

  4. 3 sposoby na posortowanie kolumny w MariaDB

  5. Jak poradzić sobie z przypadkowym usunięciem danych w MySQL i MariaDB?