Kategorien
Allgemein Development

MySQL – root Login nicht (mehr) möglich

Nach der erfolgreichen Installation eines MySQL Servers kann es vorkommen, dass der Login als Benutzer „root“ ausschließlich über die Shell möglich ist. Selbst, wenn vermeintlich per „mysql_secure_installation“ ein Passwort gesetzt wurde. Grund dafür ist das Authentication Plugin „auth_socket“, das per Default für den Benutzer „root“ eingestellt ist. Dieses erwartet keinerlei Passwörter beim Login, ermöglicht diesen aber nur über die Shell.

Wenn man sich allerdings per Adminer, phpMyAdmin etc. klassisch mit einem Passwort anmelden will, gibt es hierfür zwei Lösungsansätze.

Natürlich gilt hier grundsätzlich, dass das vereinfachen des Login eines Benutzers mit hohen Rechten immer den Nachteil mitbringt, dass man das System angreifbar macht. Temporär macht so eine Einrichtung aber durchaus mal Sinn…

Möglichkeit 1:

Man stellt das Authentication Plugin des Benutzers auf die altbekannte Variante „mit Passwort“. Das geht wie folgt:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'P4$$W=RD';

Man stellt für den Benutzer root „mysql_native_password“ als Plugin ein und definiert ein Passwort.

Möglichkeit 2:

Man erstellt einen neuen Benutzer, der nicht root heißt und gibt ihm alle möglichen Rechte sowie ein Passwort.

CREATE USER 'admin_user'@'localhost';
GRANT ALL PRIVILEGES ON *.* To 'admin_user'@'localhost' IDENTIFIED BY 'P4$$W=RD' WITH GRANT OPTION;

Welche Variante man wählt ist letztendlich egal. Etwas sicherer scheint mir Möglichkeit 2 zu sein, da man hier wenigstens den Benutzernamen root durch einen anderen ersetzt und es einem Angreifer „etwas“ schwerer macht.

Abschließend gilt es bei beiden Varianten aber auf jeden Fall noch

FLUSH PRIVILEGES;

auszuführen.