MySQL-Skripts ohne Passwort

Jede Woche erscheint in unserem Newsletter ein neuer ADMIN-Tipp. Eine Sammlung aller Tipps finden Sie im Archiv der ADMIN-Tipps.

Wer Backups einer MySQL-Datenbank machen möchte, braucht dafür Username und Passwort. Moderne MySQL-Versionen bringen ein Tool mit, das das Hinterlegen der Credentials in Skripten vermeiden hilft. 

Schon seit langem ist es möglich, die Zugangsdaten für MySQL in einer Konfigurationsdatei, etwa "$HOME/.my.cnf" zu hinterlegen, wo die Credentials aber im Klartext stehen. Seit MySQL 5.6.6 wird das Tool "mysql_config_editor" ausgeliefert, das es ermöglich, mit einem Aufruf die Zugangsdaten verschlüsselt in einem File einzutragen, von wo aus sie etwa mit einem Skript verwendet werden können. So setzen Sie beispielsweise die Authentifizierungsdaten für den MySQL-Root-User:

mysql_config_editor set --login-path=devel --host=localhost --user=root --password

Der Login-Path ermöglicht es, in einer Datei mehrere verschiedene Logins zu identifizieren. 

Die üblichen MySQL-Tools wurden analog dazu mit dem gleichen Parameter "--login-path" ausgestattet, der dann die Credentials aus dem File entschlüsselt und verwendet:

mysqldump --login-path=devel --databases $db > $db.sql

Wirklich sicher ist die Verschlüsselung logischerweise nicht, denn irgendwo muss der verwendete Schlüssel ja liegen. Dementsprechend haben im Internet einige Blogger vorgeführt, wie sich die Passwörter aus der Datei "~/.mylogin.conf" auslesen lassen. Kolbe Kegel von MariaDB bezeichnet das Feature gar als " Security through Complacency ". Aber auch wenn das Feature im Endeffekt keine höhere Sicherheit verspricht, hilft es immerhin dabei, die Zugangsdaten aus Skripten herauszuhalten, die unter Umständen in öffentlichen Quellcode-Repositories landen. 

23.03.2018
comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023