Jakie są minimalne uprawnienia (grants) do wykonania zrzutu bazy MySQL

Wykonując zrzut wielu baz MySQL przekazywanie loginu i hasła ich użytkowników na dłuższą metę jest niewygodne, a używanie konta roota to zły pomysł z punktu widzenia bezpieczeństwa.

Chesz przetestować działanie poniższych instrukcji, a nie masz dostępu do serwera Linuxowego? Po rejestacji na DigitalOcean otrzymasz 100 dolarów do wykorzystania w ciągu 60 dni, a z przyjaznym interfejsem uruchomisz ulubioną dystrybucję w ciągu paru minut.

Można jednak utworzyć użytkownika który będzie posiadał minimalny zestaw uprawnień (grantów), pozwalający jedynie na zrzut wszystkich dostępnych na serwerze baz danych MySQL. By dodatkowo zwiększyć bezpieczeństwo jego dane logowania mogą być przechowywane w zewnętrznym pliku, co opisano w Jak bezpiecznie użyć w skrypcie login i hasło do bazy MySQL.

Aby utworzyć takiego użytkownika wystarczy zalogować się do serwera MySQL i wywołać następujące zapytania (uprzednio zmieniając hasło na inne).

CREATE USER 'backup_user'@'localhost' IDENTIFIED BY 'kpPeEuJzvAXaGhdDexDY';
GRANT LOCK TABLES, SELECT, SHOW VIEW, EVENT ON *.* TO 'backup_user'@'localhost' IDENTIFIED BY 'kpPeEuJzvAXaGhdDexDY';
FLUSH PRIVILEGES;