Von Matthias Jung auf Dienstag, 10. März 2020
Kategorie: Data Management

Du kommst hier nicht rein. Oder: Wie authentifiziere ich MySQL User über das Betriebssystem

Mach Du das mal….

Ab und zu wäre es schön, den Authentifizierungsprozess dem Betriebssystem zu überlassen. Anstatt das Password eines Users oder einer Applikation in der Datenbank zu speichern, reicht uns als Legitimation die Tatsache aus, dass der User oder die Applikationen den Verbindungsaufbau als bestimmter Betriebssystem-User durchführt. Dies kann bei MySQL durchaus realisiert werden. Voraussetzung hierfür ist, dass der OS-User und die Datenbank auf dem gleichen System (also localhost) arbeiten müssen. Dies ist aber z.B. bei LAMP-Architekturen (LAMP= Linux + Apache + MySQL + PHP) oftmals der Fall. In unserem einfachen Beispiel läuft eine MySQL DB unter dem OS-User „mysql":

Die Datenbank verfügt über einen Applikations-User namens ‚ordix', der sich von „localhost" mit seinem Passwort authentifizieren darf:

Du kannst Dich gerne auf den Socket stellen

Unser Wunsch ist es jedoch, dass sich dieser User ab sofort über das OS authentifiziert. Dazu muss beim Start des Servers ein Authentifizierungs-Plugin geladen werden:

Die Aktivierung des Plugins erfolgt dann per Kommando online:

Im Anschluss an die Aktivierung kann nun der User ‚ordix'@‚localhost' auf die Betriebssystem-Authentifizierung umgestellt werden:

Vertrauen ist gut, Kontrolle ist besser

Abschließend testen wir den Zugriff als Betriebssystem-User ‚ordix':

Fazit

Die Authentifizierung über den OS-User ist bei MySQL kein Hexenwerk und in einigen Fällen sicherlich nützlich. Vielen sind jedoch die unterschiedlichen Authentifizierungs-Plugins nicht bekannt. Ein Blick in die MySQL Dokumentation kann hier zur Aufklärung beitragen: https://dev.mysql.com/doc/refman/8.0/en/authentication-plugins.html

Kommentare hinterlassen