Sparen Sie 15% bei allen Hosting-Diensten

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code: Skills Anfangen
Abschnitte
Verwaltung

Wie man einen neuen Benutzer in MySQL erstellt und Berechtigungen setzt

MySQL bleibt eines der am weitesten verbreiteten relationalen Datenbankverwaltungssysteme der Welt und treibt alles von kleinen persönlichen Projekten bis hin zu unternehmensweiten Anwendungen an. Egal ob Sie ein Entwickler, Systemadministrator oder Geschäftsinhaber sind, der Ihre eigene Infrastruktur verwaltet – das Verständnis für die Erstellung von MySQL-Benutzern und die Konfiguration ihrer Berechtigungen ist eine unverzichtbare Fähigkeit zur Aufrechterhaltung einer sicheren, gut organisierten Datenbankumgebung.

Schlechte Benutzerverwaltung ist eine der Hauptursachen für Datenbankbreaches. Das Gewähren übermäßiger Privilegien, die Wiederverwendung von Anmeldedaten oder das Aktivlassen von Standardkonten kann Ihre gesamte Datenschicht unnötigen Risiken aussetzen. Dieses Handbuch führt Sie durch den gesamten Prozess – vom Anmelden bei MySQL bis zur Überprüfung von Berechtigungen – mit klaren Befehlen, praktischen Beispielen und Best Practices für Sicherheit bei jedem Schritt.

Warum MySQL-Benutzerverwaltung wichtig ist

Bevor wir uns in die Befehle vertiefen, lohnt es sich zu verstehen, *warum* dies wichtig ist. MySQL arbeitet nach dem Prinzip der minimalen Berechtigung: Jeder Benutzer sollte nur Zugriff auf die spezifischen Datenbanken, Tabellen und Operationen haben, die er wirklich benötigt. Dies minimiert den Umfang eines kompromittierten Kontos und macht die Überprüfung viel einfacher.

Wenn Sie MySQL auf einem verwalteten VPS Hosting-Plan oder einem Dedicated Server ausführen, haben Sie vollständigen Root-Zugriff auf Ihre MySQL-Instanz und damit vollständige Kontrolle über die Benutzererstellung und Berechtigungsverwaltung. Viele Kontrollpanel-Umgebungen – wie die mit VPS mit cPanel verfügbaren – bieten auch eine grafische Benutzeroberfläche für die MySQL-Verwaltung, die den hier beschriebenen Befehlszeilenansatz ergänzen kann.

Voraussetzungen

Stellen Sie vor Beginn sicher, dass Sie über Folgendes verfügen:

  • MySQL 5.7+ oder MySQL 8.0+ auf Ihrem Server installiert und ausgeführt
  • Root-Zugriff oder Zugriff auf ein MySQL-Superuser-Konto mit GRANT OPTION Berechtigungen
  • Terminal-Zugriff (Linux/macOS) oder Eingabeaufforderung / PowerShell (Windows)

Schritt 1: Bei MySQL anmelden

Um Benutzer und Berechtigungen zu verwalten, müssen Sie sich als Benutzer mit ausreichenden Administratorrechten authentifizieren. In den meisten Fällen ist dies das root Konto.

Öffnen Sie Ihr Terminal oder die Eingabeaufforderung

  • Linux / macOS: Öffnen Sie Ihre Terminalanwendung
  • Windows: Öffnen Sie die Eingabeaufforderung oder PowerShell

Verbindung zum MySQL-Server herstellen

Führen Sie den folgenden Befehl aus:

mysql -u root -p

Sie werden aufgefordert, das Root-Passwort einzugeben. Nach erfolgreicher Authentifizierung wird die MySQL-Eingabeaufforderung angezeigt:

mysql>

> Sicherheitstipp: Wenn Sie sich mit einem Remote-MySQL-Server verbinden, geben Sie den Host mit dem -h Flag an:

> “`bash

> mysql -u root -p -h your_server_ip

> “`

Schritt 2: Einen neuen MySQL-Benutzer erstellen

Sobald Sie sich in der MySQL-Shell befinden, können Sie einen neuen Benutzer mit der CREATE USER Anweisung erstellen.

Syntax

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

Parameteraufschlüsselung:

ParameterBeschreibung
usernameDer Name, den Sie dem neuen Benutzer zuweisen möchten
hostDer Host, von dem aus der Benutzer eine Verbindung herstellen darf. Verwenden Sie localhost für lokalen Zugriff nur oder % als Platzhalter für jeden Host
passwordEin starkes, eindeutiges Passwort für diesen Benutzer

Beispiel: Erstellen Sie einen Benutzer, der von jedem Host aus zugänglich ist

CREATE USER 'newuser'@'%' IDENTIFIED BY 'StrongP@ssw0rd!';

Beispiel: Erstellen Sie einen Benutzer, der auf Localhost beschränkt ist

CREATE USER 'localuser'@'localhost' IDENTIFIED BY 'AnotherStr0ng#Pass';

> Best Practice: Beschränken Sie Benutzer nach Möglichkeit auf localhost oder eine bestimmte IP-Adresse, anstatt % zu verwenden. Der Wildcard-Host-Zugriff vergrößert Ihre Angriffsfläche unnötig.

MySQL 8.0 Hinweis zu Authentifizierungs-Plugins

MySQL 8.0 führte caching_sha2_password als Standard-Authentifizierungs-Plugin ein, was zu Kompatibilitätsproblemen mit älteren Clients oder Anwendungen führen kann. Falls erforderlich, können Sie die Authentifizierungsmethode explizit festlegen:

CREATE USER 'newuser'@'%' IDENTIFIED WITH mysql_native_password BY 'StrongP@ssw0rd!';

Schritt 3: Berechtigungen für den Benutzer erteilen

Das Erstellen eines Benutzers gewährt ihm nicht automatisch Zugriff auf Datenbanken. Sie müssen Berechtigungen explizit mit der GRANT Anweisung zuweisen.

Syntax

GRANT privileges ON database.table TO 'username'@'host';

Parameteraufschlüsselung:

ParameterBeschreibung
privilegesEine kommagetrennte Liste von Berechtigungen (z. B. SELECT, INSERT, UPDATE, DELETE) oder ALL PRIVILEGES
database.tableDer Umfang der Berechtigung. Verwenden Sie *.* für alle Datenbanken und Tabellen, dbname.* für alle Tabellen in einer bestimmten Datenbank oder dbname.tablename für eine einzelne Tabelle
username@hostDas Zielbenutzer-Konto

Häufige MySQL-Berechtigungen

BerechtigungBeschreibung
SELECTDaten aus Tabellen lesen
INSERTNeue Zeilen zu Tabellen hinzufügen
UPDATEVorhandene Zeilen ändern
DELETEZeilen aus Tabellen entfernen
CREATENeue Datenbanken oder Tabellen erstellen
DROPDatenbanken oder Tabellen löschen
INDEXIndizes erstellen oder löschen
ALTERTabellenstrukturen ändern
ALL PRIVILEGESVollzugriff (mit Vorsicht verwenden)
GRANT OPTIONBenutzer darf Berechtigungen an andere erteilen

Beispiel: Vollzugriff auf eine bestimmte Datenbank erteilen

GRANT ALL PRIVILEGES ON exampledb.* TO 'newuser'@'%';

Beispiel: Schreibgeschützten Zugriff erteilen

GRANT SELECT ON exampledb.* TO 'readonly_user'@'localhost';

Beispiel: Spezifische Berechtigungen für eine einzelne Tabelle erteilen

GRANT SELECT, INSERT, UPDATE ON exampledb.orders TO 'app_user'@'localhost';

Beispiel: Globale Berechtigungen erteilen (sparsam verwenden)

GRANT ALL PRIVILEGES ON *.* TO 'admin_user'@'localhost' WITH GRANT OPTION;

> Warnung: Das Erteilen von ALL PRIVILEGES ON *.* gibt einem Benutzer Superuser-äquivalenten Zugriff. Reservieren Sie dies nur für vertrauenswürdige Administratorkonten.

Schritt 4: Berechtigungen aktualisieren

Nach Änderungen an Benutzerberechtigungen ist es eine gute Praxis, die Berechtigungstabellen neu zu laden, damit MySQL Ihre Änderungen sofort erkennt:

FLUSH PRIVILEGES;

> Hinweis: In modernen MySQL-Versionen (5.7.3+) wird FLUSH PRIVILEGES automatisch nach GRANT, REVOKE und CREATE USER Anweisungen ausgelöst. Das explizite Ausführen nach manuellen Änderungen an den mysql Systemtabellen (über INSERT oder UPDATE) bleibt jedoch unverzichtbar.

Schritt 5: Benutzerberechtigungen überprüfen

Bestätigen Sie immer, dass die von Ihnen festgelegten Berechtigungen korrekt sind, bevor Sie ein Benutzerkonto in die Produktion aufnehmen.

Grants für einen bestimmten Benutzer überprüfen

SHOW GRANTS FOR 'newuser'@'%';

Beispielausgabe:

+--------------------------------------------------------------+
| Grants for newuser@%                                         |
+--------------------------------------------------------------+
| GRANT USAGE ON *.* TO `newuser`@`%`                          |
| GRANT ALL PRIVILEGES ON `exampledb`.* TO `newuser`@`%`       |
+--------------------------------------------------------------+

Alle MySQL-Benutzer auflisten

SELECT user, host FROM mysql.user;

Berechtigungen des aktuellen Benutzers überprüfen

SHOW GRANTS;

Schritt 6: Berechtigungen widerrufen (bei Bedarf)

Berechtigungen ändern sich im Laufe der Zeit. Wenn ein Benutzer bestimmte Zugriffe nicht mehr benötigt, widerrufen Sie diese umgehend mit der REVOKE Anweisung:

Syntax

REVOKE privileges ON database.table FROM 'username'@'host';

Beispiel: Alle Berechtigungen von einem Benutzer widerrufen

REVOKE ALL PRIVILEGES ON exampledb.* FROM 'newuser'@'%';
FLUSH PRIVILEGES;

Beispiel: Eine bestimmte Berechtigung widerrufen

REVOKE DELETE ON exampledb.orders FROM 'app_user'@'localhost';

Schritt 7: Löschen eines Benutzers (Falls erforderlich)

Wenn ein Benutzerkonto nicht mehr benötigt wird, entfernen Sie es vollständig, um unnötige Zugriffsvektoren zu eliminieren:

DROP USER 'newuser'@'%';

Dieser Befehl entfernt das Benutzerkonto und alle zugehörigen Berechtigungen in einer einzigen Operation.

MySQL-Benutzerverwaltung in gehosteten Umgebungen

Wenn Sie MySQL in einer Shared- oder verwalteten Hosting-Umgebung verwalten, kann der Prozess je nach Kontrollpanel leicht unterschiedlich sein. Plattformen wie cPanel, Plesk und DirectAdmin bieten grafische Schnittstellen zum Erstellen von MySQL-Benutzern und zum Zuweisen von Berechtigungen, ohne SQL direkt zu schreiben.

Für Benutzer, die vollständige Befehlszeilenkontrolle ohne den Overhead eines dedizierten Servers benötigen, bieten VPS Hosting-Pläne das ideale Gleichgewicht zwischen Leistung, Flexibilität und Kosten. Wenn Sie datenbankintensive Anwendungen ausführen, die maximalen Durchsatz und isolierte Ressourcen erfordern, sollten Sie ein Upgrade auf einen Dedicated Server für garantierte Leistung in Betracht ziehen.

Für kleinere Projekte oder Entwicklungsumgebungen enthalten Shared Web Hosting-Pläne normalerweise phpMyAdmin-Zugriff, das eine browserbasierte Schnittstelle für die MySQL-Benutzer- und Datenbankverwaltung bietet.

Wenn Ihre Anwendung sensible Benutzerdaten verarbeitet, stellt die Kopplung Ihres Datenbankservers mit einem gültigen SSL Certificate sicher, dass Daten, die zwischen Ihrer Anwendung und dem Datenbankserver übertragen werden, verschlüsselt bleiben und vor Abfangen geschützt sind.

Security Best Practices für MySQL-Benutzerverwaltung

Die technischen Schritte zu befolgen ist nur die halbe Arbeit. Hier sind kritische Sicherheitspraktiken, die jeder Administrator implementieren sollte:

  1. Verwenden Sie niemals das Root-Konto für Anwendungsverbindungen. Erstellen Sie dedizierte Benutzer mit minimalen Berechtigungen für jede Anwendung.
  2. Verwenden Sie starke, eindeutige Passwörter für jeden MySQL-Benutzer. Erwägen Sie einen Passwort-Manager oder Secrets Vault.
  3. Beschränken Sie den Host-Zugriff auf localhost oder spezifische IP-Adressen, wo immer möglich.
  4. Überprüfen Sie Benutzerkonten regelmäßig. Entfernen Sie Konten, die nicht mehr aktiv oder notwendig sind.
  5. Vermeiden Sie Wildcard-Grants (*.*), es sei denn, sie sind absolut erforderlich für administrative Aufgaben.
  6. Aktivieren Sie das Audit-Log-Plugin von MySQL auf Produktionsservern, um alle Benutzeraktivitäten zu verfolgen.
  7. Rotieren Sie Passwörter regelmäßig, besonders nach Personalwechseln oder vermuteten Kompromittierungen.
  8. Verwenden Sie SSL/TLS für MySQL-Verbindungen, wenn Sie sich über ein Netzwerk verbinden, auch innerhalb eines privaten LAN.

Schnellreferenz: Wesentliche MySQL-Benutzerverwaltungsbefehle

AufgabeBefehl
Bei MySQL anmeldenmysql -u root -p
Neuen Benutzer erstellenCREATE USER 'user'@'host' IDENTIFIED BY 'pass';
Alle Berechtigungen für eine DB gewährenGRANT ALL PRIVILEGES ON db.* TO 'user'@'host';
Schreibgeschützten Zugriff gewährenGRANT SELECT ON db.* TO 'user'@'host';
Berechtigungen aktualisierenFLUSH PRIVILEGES;
Benutzerberechtigungen anzeigenSHOW GRANTS FOR 'user'@'host';
Alle Benutzer auflistenSELECT user, host FROM mysql.user;
Berechtigungen widerrufenREVOKE privileges ON db.* FROM 'user'@'host';
Benutzer löschenDROP USER 'user'@'host';

Fazit

Eine ordnungsgemäße MySQL-Benutzerverwaltung ist eine grundlegende Säule der Datenbankensicherheit und betrieblichen Hygiene. Durch die Erstellung dedizierter Benutzerkonten, die Zuweisung nur der Berechtigungen, die jedes Konto wirklich benötigt, und die regelmäßige Überprüfung Ihrer Benutzerliste reduzieren Sie das Risiko von unbefugtem Zugriff, Datenlecks und Privilegienausweitung dramatisch.

Die in diesem Leitfaden behandelten Befehle — CREATE USER, GRANT, REVOKE, FLUSH PRIVILEGES, SHOW GRANTS und DROP USER — bilden das Kern-Toolkit, das jeder Datenbankadministrator benötigt. Ob Sie eine einzelne Entwicklungsdatenbank verwalten oder Dutzende von Produktionsinstanzen überwachen, die konsistente Anwendung dieser Praktiken hält Ihre MySQL-Umgebung sicher, wartbar und konform.

Für eine Hosting-Umgebung, die Ihnen die volle Kontrolle gibt, die Sie benötigen, um diese Best Practices umzusetzen, erkunden Sie AlexHost’s Palette von Lösungen — von Shared Web Hosting für unkomplizierte Projekte bis hin zu vollständig verwalteten VPS Control Panels für Teams, die Leistung und Flexibilität ohne die Komplexität der Bare-Metal-Verwaltung benötigen.