Benutzer erstellen und Zugriffsrechte in MySQL verwalten

Wie Sie MySQL-Benutzer erstellen und deren Berechtigungen verwalten.

Bei der Arbeit mit einem dedizierten Server oder einem VPS ist die Organisation der Datenspeicherung und -verwaltung eine der zentralen Aufgaben. MySQL ist ein Datenbankmanagementsystem, das eine effiziente Strukturierung von Informationen und die Steuerung des Benutzerzugriffs ermöglicht. Es eignet sich sowohl für kleine Projekte als auch für umfangreichere Anwendungen und bietet Sicherheit, Zuverlässigkeit und einfache Handhabung.

MySQL nutzt ein Benutzersystem zur Zugriffskontrolle auf Datenbanken. Ein Administrator oder autorisierter Benutzer kann anderen Benutzern vollständigen oder eingeschränkten Zugriff auf bestimmte Datenbanken und Tabellen gewähren.

MySQL-Berechtigungen

Berechtigungen auf Datenbank- und Tabellenebene:

  • CREATE — Datenbanken und Tabellen erstellen.
  • DROP — Datenbanken und Tabellen löschen.
  • INSERT — Zeilen in Tabellen einfügen.
  • UPDATE — Zeilendaten ändern. Nicht zu verwechseln mit ALTER, das die Tabellenstruktur ändert.
  • DELETE — Zeilen aus Tabellen entfernen.
  • ALTER — Tabellenstruktur ändern; erfordert die Berechtigungen CREATE und INSERT.
  • SELECT — Daten aus Tabellen lesen.
  • GRANT OPTION — Berechtigungen für andere Benutzer erteilen oder entziehen (beschränkt auf die Berechtigungen, über die der Benutzer selbst verfügt).
  • LOCK TABLES — Tabellen während Schreibvorgängen sperren.
  • REFERENCES — Fremdschlüsselbeziehungen zwischen Tabellen erstellen.
  • EVENT — Scheduler-Ereignisse erstellen, ändern und löschen.
  • TRIGGER — Trigger für DELETE-, UPDATE- und INSERT-Operationen erstellen, ändern und löschen.
  • INDEX — Indizes erstellen und entfernen.
  • CREATE TEMPORARY TABLES — Temporäre Tabellen für die Dauer einer Sitzung erstellen.
  • CREATE VIEW — Views erstellen, die Daten aus anderen Tabellen aggregieren.
  • SHOW VIEW — Die SQL-Abfrage hinter einer View-Definition einsehen.
  • CREATE ROUTINE — Gespeicherte Prozeduren erstellen.
  • ALTER ROUTINE — Gespeicherte Prozeduren ändern.
  • EXECUTE — Gespeicherte Prozeduren ausführen.
  • FILE — Auf für MySQL verfügbare Serverdateien zugreifen und Dateien in von MySQL beschreibbaren Verzeichnissen erstellen.

Administrative Berechtigungen:

  • CREATE TABLESPACE — Tablespaces erstellen, ändern und löschen.
  • CREATE USER — MySQL-Benutzer erstellen, ändern und löschen.
  • PROCESS — Informationen über aktive Server-Threads anzeigen.
  • PROXY — Als ein anderer Benutzer einloggen, um Zugriffsrechte zu prüfen.
  • RELOAD — Den Befehl FLUSH ausführen, um den MySQL-Cache zu leeren.
  • REPLICATION CLIENTSHOW MASTER STATUS, SHOW SLAVE STATUS und SHOW BINARY LOG ausführen.
  • REPLICATION SLAVE — Replica-Servern erlauben, Updates vom primären Server zu empfangen.
  • SHOW DATABASES — Alle Datenbanken auf dem Server auflisten.
  • SHUTDOWN — Den MySQL-Server herunterfahren.
  • SUPER — Erweiterte Administratorrechte: Prozesse anderer Benutzer beenden, globale Systemvariablen ändern, Logging und Replikation verwalten.
  • ALL — Alle verfügbaren Berechtigungen außer GRANT OPTION.

Unsere Produkte und Dienste

WebhostingLäuft auf ultraschnellen NVMe-Laufwerken. Geeignet für Websites jeder Komplexität.
Bestellen
VPSFlexible Cloud-Infrastruktur mit vollem Root-Zugriff.
Bestellen
Dedizierte ServerBare-Metal-Server für maximale Leistung.
Bestellen

Benutzer erstellen

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

Standardmäßig hat der neue Benutzer keine Berechtigungen für Datenbanken.

Berechtigungen vergeben

Alle Berechtigungen für alle Datenbanken und Tabellen vergeben:

GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost';

Bestimmte Berechtigungen für eine bestimmte Datenbank oder Tabelle vergeben:

GRANT [privilege type] ON [database].[table] TO '[username]'@'localhost';

Verwenden Sie * anstelle eines Datenbank- oder Tabellennamens, um die Berechtigungen auf alle anzuwenden.

Nach Änderungen die Berechtigungstabellen neu laden:

FLUSH PRIVILEGES;

Berechtigungen entziehen

REVOKE [privilege type] ON [database].[table] FROM '[username]'@'localhost';

Benutzer löschen

DROP USER 'demo'@'localhost';

Konto überprüfen

MySQL beenden:

quit

Dann als neuer Benutzer erneut einloggen:

mysql -u [username] -p

Hilfe

Bei Fragen oder wenn Sie Unterstützung brauchen, erreichen Sie uns jederzeit über das Ticketsystem — wir helfen Ihnen gern weiter!

Hilfe benötigt?Unsere Ingenieure helfen Ihnen kostenlos bei jeder Frage in wenigen MinutenKontaktieren Sie uns