- 1 1. Einführung
- 2 2. Wie man die Benutzerliste in MariaDB überprüft
- 3 3. Detaillierte Verwaltung von MariaDB-Benutzern
- 4 4. Key Considerations for MariaDB User Management
- 5 5. FAQ (Häufig gestellte Fragen)
- 5.1 Q1: Wie kann ich Privilegien nur einem bestimmten Benutzer erteilen?
- 5.2 Q2: Was sind die Ursachen und Lösungen, wenn die Benutzerliste nicht angezeigt wird?
- 5.3 Q3: Was sollte ich tun, wenn der Root-Benutzer gesperrt ist?
- 5.4 Q4: Ich erhalte einen Fehler beim Löschen eines Benutzers. Was soll ich tun?
- 5.5 Q5: Wie kann ich die Ausgabe von SHOW GRANTS speichern?
- 5.6 Zusammenfassung
1. Einführung
MariaDB ist eines der heute am weitesten verbreiteten Datenbankverwaltungssysteme, das für seine Benutzerfreundlichkeit und hohe Leistung bekannt ist. Unter seinen vielen Funktionen spielt das Benutzermanagement eine entscheidende Rolle. Durch eine ordnungsgemäße Verwaltung der Benutzer können Sie die Datensicherheit gewährleisten und effiziente Abläufe erreichen.
Dieser Artikel konzentriert sich darauf, wie man die Benutzerliste in MariaDB überprüft. Konkret erklären wir, wie man mit SQL-Befehlen eine Liste von Benutzern abruft, welche Unterschiede und Vorteile die einzelnen Methoden haben sowie die zugehörigen Berechtigungseinstellungen und wichtige Überlegungen.
Dieser Leitfaden ist nicht nur für MariaDB-Anfänger gedacht, sondern auch für diejenigen, die derzeit Produktionsumgebungen verwalten. Lesen Sie ihn bitte bis zum Ende.
2. Wie man die Benutzerliste in MariaDB überprüft
Es gibt mehrere Möglichkeiten, die Benutzerliste in MariaDB zu prüfen. Jede Methode hat ihre eigenen Eigenschaften, und die Auswahl der passenden Methode basierend auf Ihrem Zweck ermöglicht ein effizientes Benutzermanagement. Im Folgenden erläutern wir drei repräsentative Methoden im Detail.
2.1 Verwendung der Tabelle mysql.user
Die grundlegendste Methode, um Benutzerinformationen in MariaDB zu prüfen, besteht darin, direkt die Tabelle mysql.user zu referenzieren. Diese Tabelle speichert alle Benutzerkontoinformationen.
Beispielbefehl
Sie können die Benutzerliste anzeigen, indem Sie das folgende SQL ausführen:
SELECT Host, User FROM mysql.user;
Erklärung
- Host : Gibt den Hostnamen an, von dem aus der Benutzer sich verbinden darf.
- User : Der in MariaDB registrierte Benutzername.
Anwendungsszenarien
- Wenn Sie alle Benutzer in einer Liste anzeigen möchten.
- Wenn Sie prüfen möchten, welche Benutzer von einem bestimmten Host aus verbinden können.
Wichtige Hinweise
- Sie benötigen ausreichende Berechtigungen (typischerweise
root-Rechte), um die Tabellemysql.userzu referenzieren. - In einigen Versionen wird die direkte Verwendung von
mysql.usernicht empfohlen. Prüfen Sie stets die offizielle Dokumentation für Ihre Version.
2.2 Verwendung des SHOW GRANTS Befehls
Sie können den Befehl SHOW GRANTS verwenden, um die einem bestimmten Benutzer gewährten Berechtigungen zu prüfen.
Beispielbefehl
Geben Sie den Benutzer wie unten gezeigt an, um seine Berechtigungen anzuzeigen:
SHOW GRANTS FOR 'username'@'hostname';
Erklärung
- Sie können detaillierte Berechtigungen für jeden Benutzer einsehen.
- Beispielausgabe:
GRANT ALL PRIVILEGES ON *.* TO 'user1'@'localhost';
Anwendungsszenarien
- Wenn Sie überprüfen möchten, ob die Berechtigungseinstellungen eines Benutzers korrekt sind.
- Bei der Fehlersuche von Problemen, die durch falsche Berechtigungskonfiguration verursacht wurden.
Wichtige Hinweise
- Wenn Ihnen die erforderlichen Berechtigungen fehlen, können Sie diesen Befehl nicht ausführen.
2.3 Verwendung von information_schema.USER_PRIVILEGES
MariaDB enthält eine Systemdatenbank namens information_schema. Durch Abfragen der Tabelle USER_PRIVILEGES darin können Sie Berechtigungsinformationen für alle Benutzer anzeigen.
Beispielbefehl
SELECT * FROM information_schema.USER_PRIVILEGES;
Erklärung
- Diese Methode ermöglicht es, globale Berechtigungen für jeden Benutzer zu überprüfen.
- Die Ausgabe enthält Informationen wie:
- GRANTEE : Benutzername und Hostname.
- PRIVILEGE_TYPE : Art der gewährten Berechtigung.
- IS_GRANTABLE : Ob die Berechtigung an andere vergeben werden kann.
Anwendungsszenarien
- Wenn Sie Berechtigungen für mehrere Benutzer gleichzeitig überprüfen möchten.
- Bei der Überprüfung globaler Berechtigungseinstellungen.
Wichtige Hinweise
- Einige Berechtigungen sind in dieser Tabelle möglicherweise nicht vollständig sichtbar.
Zusammenfassung
Durch die richtige Anwendung dieser Methoden können Sie MariaDB-Benutzerkonten und Berechtigungsinformationen effektiv verwalten. Jeder Ansatz hat seine Stärken, daher ist es wichtig, den passenden Ansatz basierend auf Ihrem konkreten Ziel auszuwählen.

3. Detaillierte Verwaltung von MariaDB-Benutzern
MariaDB ermöglicht es Ihnen, detaillierte Benutzerinformationen einzusehen und Berechtigungen effizient zu verwalten. In diesem Abschnitt erklären wir die wesentlichen Vorgänge, die für eine ordnungsgemäße Benutzerverwaltung erforderlich sind.
3.1 Überprüfung von Benutzerinformationen
In MariaDB können Sie den Befehl SHOW CREATE USER verwenden, um detaillierte Informationen zu einem bestimmten Benutzer abzurufen. Dieser Befehl reproduziert die Anweisung, die beim Erstellen des Benutzers verwendet wurde.
Example Command
Führen Sie das folgende SQL aus, um detaillierte Informationen über den angegebenen Benutzer anzuzeigen:
SHOW CREATE USER 'username'@'hostname';
Explanation
Dieser Befehl wird verwendet, um die Authentifizierungsmethode des Benutzers und weitere Attribute zu überprüfen. Beispielausgabe:
CREATE USER 'user1'@'localhost' IDENTIFIED VIA mysql_native_password USING '***';
Usage Scenarios
- Wenn Sie die Authentifizierungsmethode eines Benutzers bestätigen möchten.
- Wenn Sie Benutzerattribute auf mögliche Probleme überprüfen.
Important Notes
- Für die Ausführung dieses Befehls sind entsprechende Rechte erforderlich (typischerweise
root-Rechte).
3.2 Setting and Modifying User Privileges
MariaDB ermöglicht eine flexible Rechtekonfiguration für jeden Benutzer. Sie können die Befehle GRANT und REVOKE verwenden, um Rechte zu verwalten.
Granting Privileges
Das folgende SQL gewährt einem bestimmten Benutzer spezifische Rechte:
GRANT SELECT, INSERT ON database_name.* TO 'username'@'hostname';
Revoking Privileges
Um unnötige Rechte zu entfernen, verwenden Sie den Befehl REVOKE:
REVOKE INSERT ON database_name.* FROM 'username'@'hostname';
Explanation
- Der Befehl
GRANTweist Betriebsrechte für bestimmte Datenbanken oder Tabellen zu. - Der Befehl
REVOKEentfernt nicht mehr benötigte Rechte.
Usage Scenarios
- Beim Konfigurieren von Rechten für einen neuen Benutzer.
- Beim Entfernen unnötiger Rechte zur Erhöhung der Sicherheit.
Important Notes
- Eine falsche Rechtekonfiguration kann Sicherheitsrisiken erhöhen, daher sollten Sie vorsichtig vorgehen.
3.3 Deleting a User
Das Entfernen unnötiger Benutzer erhöht die Sicherheit der Datenbank. Verwenden Sie den Befehl DROP USER, um einen Benutzer zu löschen.
Example Command
Führen Sie das folgende SQL aus, um einen angegebenen Benutzer zu löschen:
DROP USER 'username'@'hostname';
Explanation
- Wenn ein Benutzer gelöscht wird, werden alle ihm gewährten Rechte gleichzeitig entfernt.
- Bei Erfolg zeigt MariaDB eine „Query OK“-Meldung an.
Usage Scenarios
- Beim dauerhaften Entfernen eines unnötigen Benutzers aus der Datenbank.
- Beim Aufräumen ungenutzter Konten aus Sicherheitsgründen.
Important Notes
- Wenn der Benutzer gerade verbunden ist, können unbeabsichtigte Fehler auftreten.
- Das Löschen eines Benutzers kann nicht rückgängig gemacht werden, daher sollten Sie vor der Ausführung sorgfältig prüfen.
Summary
Eine ordnungsgemäße Benutzerverwaltung in MariaDB ist entscheidend, um sowohl die Sicherheit als auch die betriebliche Effizienz zu verbessern. Durch das Überprüfen von Benutzerinformationen, das Konfigurieren und Anpassen von Rechten sowie das Löschen unnötiger Benutzer können Sie eine sichere und effiziente Datenbankumgebung aufrechterhalten.

4. Key Considerations for MariaDB User Management
Um MariaDB-Benutzer korrekt zu verwalten, müssen Sie mehrere wichtige Punkte beachten. Dieser Abschnitt erklärt, wie man mit unzureichenden Rechten umgeht, zentrale Sicherheitsaspekte berücksichtigt und Unterschiede zwischen Versionen behandelt.
4.1 How to Handle Insufficient Privileges
Das Überprüfen der Benutzerliste oder der Rechte in MariaDB erfordert ausreichende Berechtigungen. Wenn ein Vorgang aufgrund unzureichender Rechte fehlschlägt, können Sie die folgenden Ansätze versuchen.
Example Error
Möglicherweise sehen Sie einen Fehler wie den folgenden:
ERROR 1045 (28000): Access denied for user 'user1'@'localhost'
How to Fix It
- Stellen Sie sicher, dass Sie mit dem richtigen Benutzer angemeldet sind
- Wenn erforderliche Rechte (z. B. das
SELECT-Recht) fehlen, können Sie die Tabellemysql.usermöglicherweise nicht abfragen. - Als Umgehungslösung versuchen Sie, sich als root-Benutzer anzumelden und den Vorgang zu wiederholen.
- Melden Sie sich als root-Benutzer an
- Die Anmeldung als root ermöglicht die meisten administrativen Vorgänge:
bash mysql -u root -p
- Rechte neu konfigurieren
- Gewähren Sie bei Bedarf die erforderlichen Rechte:
sql GRANT ALL PRIVILEGES ON *.* TO 'username'@'hostname'; FLUSH PRIVILEGES;
Wichtige Hinweise
- Vermeiden Sie das Erteilen mehr Privilegien als notwendig. Übermäßige Privilegien erhöhen das Sicherheitsrisiko.
4.2 Best Practices für die Sicherheit
Die Sicherheit sollte die oberste Priorität bei der MariaDB-Benutzerverwaltung sein. Nachfolgend sind wichtige Punkte aufgeführt, die zu beachten sind.
Unbenutzte Benutzer entfernen
- Das Beibehalten unbenutzter Benutzerkonten kann sie zu potenziellen Zielen für Angreifer machen.
- Überprüfen Sie regelmäßig Benutzer und entfernen Sie unnötige Konten:
DROP USER 'username'@'hostname';
Eine starke Passwortrichtlinie verwenden
- Beim Erstellen von Benutzern legen Sie Passwörter fest, die schwer zu erraten sind:
CREATE USER 'user1'@'localhost' IDENTIFIED BY 'StrongPassword123!';
Externen Zugriff einschränken
- Begrenzen Sie, welche Hosts verbinden können, um unnötigen externen Zugriff zu verhindern:
CREATE USER 'user1'@'192.168.0.1' IDENTIFIED BY 'password';
Logs überwachen
- Überprüfen Sie regelmäßig MariaDB-Logs (z. B.
general_logunderror_log), um verdächtigen Zugriff zu erkennen.
4.3 Unterschiede zwischen MariaDB-Versionen
Das Verhalten von MariaDB und die empfohlenen Praktiken können je nach Version variieren, daher sollten Sie Ihren Ansatz entsprechend anpassen.
Abschaffung des direkten Zugriffs auf mysql.user
- In neueren Versionen wird das direkte Abfragen der Tabelle
mysql.usermöglicherweise abgeraten. In diesem Fall verwenden Sie stattdessenSHOW GRANTSoderinformation_schema.
Authentifizierungs-Plugins
- Je nach Version kann das Standard-Authentifizierungs-Plugin unterschiedlich sein. Ältere Versionen verwenden häufig
mysql_native_password, während neuere Versionen sicherere Optionen wiecaching_sha2_passwordempfehlen.
Empfohlene Schritte
- Überprüfen Sie Ihre MariaDB-Version:
SELECT VERSION();
- Beziehen Sie sich auf die offizielle Dokumentation für Ihre Version und folgen Sie den neuesten Best Practices.
Zusammenfassung
Durch das Verständnis dieser wichtigen Überlegungen zur MariaDB-Benutzerverwaltung können Sie die Sicherheit stärken und die betriebliche Effizienz verbessern. Achten Sie auf Privilegienprobleme und versionsspezifische Unterschiede und übernehmen Sie aktuelle Sicherheitsmaßnahmen.
5. FAQ (Häufig gestellte Fragen)
Nachfolgend sind gängige Fragen und Antworten zur MariaDB-Benutzerverwaltung aufgeführt. Dieser Abschnitt behandelt die Konfiguration von Privilegien, die Fehlerbehandlung und Probleme mit dem Root-Benutzer, mit denen Administratoren häufig konfrontiert sind.
Q1: Wie kann ich Privilegien nur einem bestimmten Benutzer erteilen?
Antwort
Sie können den GRANT-Befehl verwenden, um nur die notwendigen Privilegien einem bestimmten Benutzer zu erteilen. Nachfolgend ein Beispiel, das SELECT– und INSERT-Privilegien auf eine bestimmte Datenbank erteilt:
GRANT SELECT, INSERT ON database_name.* TO 'username'@'hostname';
FLUSH PRIVILEGES;
Wichtige Punkte
- Durch die Angabe von
database_name.*gelten die Privilegien für alle Tabellen in dieser Datenbank. - Führen Sie
FLUSH PRIVILEGES;aus, um sicherzustellen, dass die Änderungen wirksam werden.
Q2: Was sind die Ursachen und Lösungen, wenn die Benutzerliste nicht angezeigt wird?
Antwort
Wenn Sie die Benutzerliste nicht anzeigen können, sind folgende Ursachen üblich.
- Unzureichende Privilegien
- Wenn erforderliche Privilegien (z. B. das
SELECT-Privileg) fehlen, können Sie die Tabellemysql.usermöglicherweise nicht abfragen. - Als Workaround versuchen Sie, sich als Root-Benutzer anzumelden und den Vorgang zu wiederholen.
- Den korrekten Befehl verwenden
- In neueren MariaDB-Versionen wird
mysql.usermöglicherweise abgeraten. In diesem Fall verwenden Sie stattdessen den folgenden Befehl:SELECT User, Host FROM information_schema.USER_PRIVILEGES;
- Ihre MariaDB-Version überprüfen
- Da empfohlene Methoden je nach Version unterschiedlich sein können, überprüfen Sie zuerst Ihre aktuelle Version:
SELECT VERSION();
Q3: Was sollte ich tun, wenn der Root-Benutzer gesperrt ist?
Antwort
Wenn der Root-Benutzer gesperrt ist und Sie sich nicht anmelden können, folgen Sie diesen Schritten.
- MariaDB im sicheren Modus starten
- Stoppen Sie den Server und starten Sie ihn im sicheren Modus neu:
bash mysqld_safe --skip-grant-tables &
- Das Root-Passwort zurücksetzen
- Melden Sie sich im sicheren Modus bei MariaDB an und setzen Sie das Root‑Passwort mit folgendem Befehl zurück:
UPDATE mysql.user SET Password=PASSWORD('new_password') WHERE User='root'; FLUSH PRIVILEGES;
- Verlassen Sie den sicheren Modus und starten Sie normal neu
- Starten Sie MariaDB neu und kehren Sie zum normalen Betrieb zurück.
Wichtige Hinweise
Da die Authentifizierung im sicheren Modus umgangen wird, stellen Sie sicher, dass keine Dritten während dieser Zeit auf den Server zugreifen können.
Q4: Ich erhalte einen Fehler beim Löschen eines Benutzers. Was soll ich tun?
Antwort
Wenn Sie beim Löschen eines Benutzers einen Fehler erhalten, sind die folgenden Probleme häufige Ursachen.
- Der zu löschende Benutzer wird derzeit verwendet
- Wenn der Benutzer gerade verbunden ist, kann das Löschen fehlschlagen.
- Als Vorgehensweise können Sie die Verbindung des Benutzers gewaltsam beenden:
SHOW PROCESSLIST; KILL connection_id;
- Abhängige Objekte existieren
- Wenn es Objekte gibt, die dem Benutzer zugeordnet sind (z. B. Views oder Stored Procedures), müssen Sie diese zuerst entfernen.
Q5: Wie kann ich die Ausgabe von SHOW GRANTS speichern?
Antwort
Sie können die Ausgabe von SHOW GRANTS in einer Datei speichern, um sie später zu prüfen.
- In eine Datei speichern
- Verwenden Sie den
mysql‑Client in der Befehlszeile und leiten Sie die Ausgabe um:bash mysql -u root -p -e "SHOW GRANTS FOR 'username'@'hostname';" > grants_output.txt
- Als SQL‑Anweisungen speichern
- Speichern Sie die Ausgabe in einer Textdatei, damit Sie sie später wiederverwenden können.
Zusammenfassung
In diesem FAQ‑Abschnitt haben wir häufige Fragen zur Verwaltung von MariaDB‑Benutzern beantwortet. Nutzen Sie diese Antworten, um Probleme zu beheben und Ihre Betriebseffizienz zu steigern.


