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
MYSQL ADMINISTRATION DB-MY-01
Zum Seminar