User anlegen

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

Rechte anzeigen

SHOW GRANTS [FOR user@host]

Rechte vergeben

GRANT Zugriffsrechte 
ON [Datenbank.]Tabelle[.Spalte] 
TO user@host [WITH GRANT OPTION]

WITH GRANT OPTION beschreibt ob der User seine Rechte weitergeben darf, oder nicht.

Privilegien / Zugriffsrechte

PRIVILEGBeschreibung
ALLAlle Rechte, außer dem GRANT-Recht, werden vergeben.
ALTERTabellenstruktur darf verändert werden.
CREATETabellen dürfen angelegt werden.
CREATE TEMPORARY TABLETemporäre Tabellen dürfen angelegt werden.
DELETEDatensätze dürfen gelöscht werden.
DROPTabellen dürfen entfernt werden.
EXECUTEStored Procedures dürfen ausgeführt werden.
FILEDateien des lokalen Dateisystems dürfen gelesen und verändert werden (z. B. für Datenimport und -export).
INDEXIndex darf angelegt und entfernt werden.
INSERTDatensätze dürfen eingefügt werden.
LOCK TABLESTabellen dürfen blockiert werden.
PROCESSMySQL-Prozesse anderer Benutzer dürfen aufgelistet werden.
RELOADVerschiedene Kommandos (z. B. FLUSH PRIVILEGES) dürfen ausgeführt werden.
REPLICATION CLIENTInformationen über die Teilnehmer eines Replikationssystems dürfen eingeholt werden.
REPLICATION SLAVEErmöglicht das Lesen der Master-BinLogs.
SELECTSELECT-Anweisungen dürfen ausgeführt werden.
SHOW DATABASESDie Namen der installierten Datenbanken können ausgegeben werden.
SHUTDOWNDer MySQL-Server darf heruntergefahren werden.
SUPERMySQL-Prozesse anderer Benutzer können beendet werden. Stored Procedures und Trigger dürfen erzeugt und geändert werden. Admin-Kommandos dürfen ausgeführt werden.
UPDATEDas Ändern von Datensätzen ist möglich.
USAGEAlle Privilegien eines Users können gesperrt werden (quasi keine Rechte).

Rechte entziehen

REVOKE Zugriffsrechte 
ON [Datenbank.]Tabelle[.Spalte] 
FROM user@host;

Verwaltung

Die Verwaltung der Zugriffsrechte erfolgt in der Datenbank mysql.

User

SHOW Columns FROM mysql.user;
HostUserauthentication_stringSELECT_privDELETE_priv…_priv
localhostUser1$A$005$HashedPwdYNY/N

Andere Tabellen

TabelleBeschreibung
mysql.dbWelcher User hat welche Rechte in welcher Datenbank (Globale Rechte werden nicht beachtet)
mysql.tables_privHaben auf eine Tabelle nicht alle User Zugriff werden die Berechtigungen hier gespeichert
mysql.colums_privHaben auf eine Spalte nicht alle User Zugriff werden die Berechtigungen hier gespeichert