Poprawna odpowiedź to „root”, ponieważ w domyślnej instalacji MySQL to właśnie użytkownik root ma pełne, administracyjne uprawnienia do całego serwera baz danych. Jest to odpowiednik konta administratora systemu operacyjnego, ale w kontekście samego MySQL. Użytkownik root może tworzyć i usuwać bazy danych, zakładać nowych użytkowników, nadawać i odbierać im uprawnienia, wykonywać kopie zapasowe, przywracać dane, a także zmieniać konfigurację na poziomie serwera SQL. Z mojego doświadczenia wynika, że w środowiskach produkcyjnych raczej unika się codziennej pracy na koncie root, mimo że technicznie jest to możliwe. Zgodnie z dobrymi praktykami bezpieczeństwa tworzy się osobne konta z ograniczonymi uprawnieniami, np. użytkownika, który ma dostęp tylko do jednej konkretnej bazy i tylko do odczytu albo do odczytu i zapisu. Konto root zostawia się wyłącznie do zadań administracyjnych, takich jak migracje, zmiana schematu bazy, naprawa tabel czy zarządzanie użytkownikami. W praktyce, podczas pierwszej instalacji MySQL albo MariaDB, instalator prosi o ustawienie hasła dla użytkownika root – i to hasło powinno być mocne, unikalne i dobrze zabezpieczone. W środowiskach serwerowych często dodatkowo ogranicza się możliwość logowania rootem z zewnątrz, np. tylko z localhost, aby utrudnić ewentualne ataki z sieci. Warto też pamiętać, że w MySQL użytkownik identyfikowany jest nie tylko nazwą, ale też hostem, więc „root@localhost” to inny użytkownik niż „root@%”. W pracy zawodowej spotyka się też sytuację, że root ma wyłączone logowanie hasłem i używa się uwierzytelniania systemowego lub pluginów, ale to już bardziej zaawansowane scenariusze. Kluczowe jest to, że root jest kontem nadrzędnym, z pełnią praw, i trzeba z nim obchodzić się ostrożnie, bo jedno nieuważne polecenie może usunąć całą bazę produkcyjną.
W systemie MySQL domyślnym kontem z pełnymi uprawnieniami administracyjnymi jest użytkownik „root”, a nie różne nazwy kojarzone ogólnie z administracją systemu. Mylenie tych nazw wynika często z doświadczeń z innymi środowiskami, jak panele hostingowe czy systemy operacyjne, gdzie pojawiają się takie loginy jak „admin” czy „sysadmin”. W MySQL nazwa użytkownika jest jednak zdefiniowana bardzo konkretnie i historycznie utrwalił się właśnie „root” jako konto głównego administratora serwera bazodanowego. Login „admin” bywa używany w panelach typu phpMyAdmin, w panelach hostingowych albo w aplikacjach webowych, ale to są konta utworzone przez dostawcę hostingu lub programistę, a nie domyślne konto MySQL. Moim zdaniem to jedno z częstszych nieporozumień: ktoś loguje się do phpMyAdmin jako „admin” i zakłada, że taki użytkownik istnieje w samym MySQL jako konto systemowe, a tymczasem jest to po prostu użytkownik zdefiniowany w bazie o określonych uprawnieniach, nadanych ręcznie. Podobnie nazwa „sysadmin” kojarzy się z rolą administratora systemu albo domeny w różnych narzędziach, ale w MySQL taka nazwa nie jest żadnym standardem ani domyślną konfiguracją. Jeśli taki użytkownik istnieje, to tylko dlatego, że ktoś go sam stworzył. Natomiast „mysqld” to w ogóle nie jest użytkownik bazy w sensie konta SQL. Tak nazywa się proces serwera MySQL uruchamiany w systemie operacyjnym, często jako osobny użytkownik systemowy (np. user „mysql” w Linuksie). Ten użytkownik systemowy służy do uruchamiania usługi, dostępu do plików danych na dysku, ale nie loguje się do bazy jako klient SQL. Typowym błędem myślowym jest mieszanie użytkowników systemu operacyjnego, użytkowników paneli administracyjnych i użytkowników samego MySQL. Każda z tych warstw ma własny model uprawnień i własne nazwy kont. W pracy z bazami danych warto zawsze rozróżniać: kto jest użytkownikiem systemu (np. Linux), kto jest użytkownikiem serwera MySQL (root, app_user itd.), a kto użytkownikiem aplikacji webowej. Dopiero wtedy zarządzanie uprawnieniami i bezpieczeństwem staje się sensowne i przewidywalne.