Von Matthias Jung auf Freitag, 21. Juli 2023
Kategorie: MySQL (PDO)

Kurz und gut - Episode #12 Lass mal den Admin ran!

Ich werde in Seminaren, Workshops oder in Kundenprojekten in Sachen MySQL immer mal wieder mit Dingen konfrontiert, auf die ich ad hoc keine Antwort habe bzw. mit denen ich noch keine Erfahrung gesammelt habe.

Das Problem

Die heutige Frage beruht auf einer sehr „scharfen Beobachtungsgabe“ eines Teilnehmers. Bei einer Übung wurde die Anzahl der maximal zulässigen Verbindungen gegen die Datenbank auf 5 begrenzt (Parameter: max_connections=5). Trotzdem war der Teilnehmer in der Lage, obwohl fünf Verbindungen aufgebaut wurden, sich als „root“-User anzumelden. 

Die Lösung

„Works as designed“! MySQL hat bislang immer eine zusätzliche Verbindung für User mit „root“-Berechtigungen („SUPER“-Privileg) bereitgestellt, um „zur Not“ administrativ eingreifen zu können. Seit der MySQL Version 8.0.14 kann man diese Fragestellung aber auch noch elaborierter lösen. 

Sobald man aktiv eine IP-Adresse für die Variable „admin_address“ deklariert, können sich User mit dem „SERVICE_CONNECTION_ADMIN“-Privilege über einen zusätzlichen Port, in einer unbegrenzten Anzahl, losgelöst von „normalen“ Usern einloggen.

 User, die dieses Privileg nicht besitzen, können den Port nicht nutzen.

Der User „root“ besitzt die entsprechenden Privilegien und kann den Admin-Port verwenden. 

Fazit

So oder so: Administrative User finden immer einen Weg auf die Console. Ab der Version 8.0.14 lässt sich dies etwas umfangreicher konfigurieren und nutzen. Die Restriktion auf eine IP macht aus Sicherheitsgründen auf jeden Fall Sinn. 

Seminarempfehlung

Kommentare hinterlassen