Einloggen in eine Percona-DB mit einem verschlüsselten Passwort

Datum

Der reguläre Weg um sich in eine Datenbank-Instanz einzuloggen, ohne jedes mal das Passwort eingeben zu müssen, war bisher so, dass man die entsprechenden Login-Daten unverschlüsselt (!) in die .my.cnf im eigenen Heimverzeichnis zu hinterlegen.

Warum nur Percona?

Percona ist als Unternehmen für die Optimierung und den Support für MySQL spezielisiert.
Die Techniker haben sich im Laufe der Zeit mehrere Skripte geschrieben, welche die Arbeit mit MYSQL vereinfachen soll. Daher ist Percona auch voll binär-kompatible mit MySQL.
Das Unternehmen hat Ihre Tools in einem eigenen Percona-Repository frei zur Verfügung gestellt.
Eine weitere Erweiterung bzw. Anpassung ist das Paket Percona-Server-Client, welches einen Ersatz für das Paket mysql56-mysql bzw. mysql-client darstellt.
Die durch dieses Paket mitgelieferten Binaries bringen eine entscheidene Funktionalität mit: der verschlüsselte, passwortlose Zugang und die Verwendung von Profilen.

mysql_config_editor

Mit diesem Tool kann analog zur bisherigen Datei .my.cnf eine weitere Datei mit den notwendigen Login-Daten als auch Informationen zum Zielsystem generiert werden. Die Datei lautet nun .mylogin.cnf. Der Vorteil gegenüber der unverschlüsselten .my.cnf ist es, dass mehrere Profile über einen Namen definiert werden können und die Kennwörter verschlüsselt vorliegen.

Anlegen eines Profils

Um sich einen lokalen Zugang anzulegen verwendet man den Befehl:
mysql_config_editor set --login-path=percona01 --host=localhost --user=root --password
Hierbei gibt man mit --login-path den Namen des Profils an.
Man kann anstatt localhost auch eine IP-Adresse einer anderen DB verwenden um sich remote zu verbinden.

Bei der Eingabe des Passwortes sollte man darauf achten das man auch das richtige Passwort eingibt, da es keine zweite Abfrage zur Kontrolle gibt.

Anzeigen aller Profile

Um nun zu schauen welche Profile angelegt wurden verwendet man:

$ mysql_config_editor print --all
[percona01]
user = root
password = *****
host = localhost

Wie man sieht wird das Passwort hier nur mit *** angezeigt und die automatisch angelegte .mylogin.cnf ist verschlüsselt:

$ file .mylogin.cnf 
.mylogin.cnf: data
Sich mit einem Profil einloggen

Um sich nun zur entsprechenden DB-Instanz mithilfe eines angelegten Profils zu verbinden verwendet man:

$ mysql --login-path=percona01
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.7.22-22 Percona Server (GPL), Release 22, Revision f62d93c

Copyright (c) 2009-2018 Percona LLC and/or its affiliates
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

Mit Angabe der Profile kann man sich auch mit anderen MySQL-Tools einloggen.
mysqladmin --login-path=percona01
mysqldump --login-path=percona01

Löschen eines Profils

Der entsprechende Befehl lautet:
mysql_config_editor remove --login-path=percona01

Autor
Kategorien Datenbanken, Linux

PRTG Map