Direkt zum Inhalt
Urkunden
FunktionenAusdrückeSchlüsselwörterAussagenKlauseln

MySQL GRANT-Anweisung

Die Anweisung GRANT in MySQL wird verwendet, um den MySQL-Benutzerkonten Berechtigungen zuzuweisen. Sie legt fest, welche Operationen Benutzer mit Datenbankobjekten wie Tabellen und Ansichten durchführen können, und gewährleistet so einen kontrollierten Zugriff auf die Datenbank.

Verwendung

Die Anweisung GRANT wird verwendet, wenn du bestimmten Benutzern die Berechtigung geben musst, bestimmte Arten von SQL-Operationen auszuführen. Es hilft dabei, Benutzerrechte effizient und sicher zu verwalten.

GRANT privileges
ON database_name.table_name
TO 'user'@'host'
[IDENTIFIED BY 'password'];

In dieser Syntax sind privileges die gewährten Berechtigungen, database_name.table_name gibt den Bereich an, user ist der MySQL-Benutzername und host ist der Ort, von dem aus sich der Benutzer verbindet. Beachte, dass die IDENTIFIED BY 'password' Klausel nur bei der Erstellung eines neuen Benutzers anwendbar ist. In MySQL 8.0 und höher wird normalerweise empfohlen, CREATE USER gefolgt von GRANT für die Erstellung von Benutzern und die Zuweisung von Berechtigungen zu verwenden.

Beispiele

1. Gewährung grundlegender Privilegien

GRANT SELECT, INSERT
ON mydb.mytable
TO 'user1'@'localhost';

Dieses Beispiel gewährt die Rechte SELECT und INSERT auf mydb.mytable für user1, das sich von localhost aus verbindet.

2. Alle Berechtigungen für eine Datenbank gewähren

GRANT ALL PRIVILEGES
ON mydb.*
TO 'user2'@'192.168.1.1';

Hier erhält user2 alle Rechte für die gesamte Datenbank mydb vom Host 192.168.1.1.

3. Privilegien mit Passwort erteilen

GRANT SELECT, UPDATE
ON mydb.mytable
TO 'user3'@'%' IDENTIFIED BY 'securepassword';

Diese Anweisung gewährt SELECT und UPDATE Privilegien auf mydb.mytable bis user3 von einem beliebigen Host (%) aus, wobei ein bestimmtes Passwort festgelegt wird. Die Verwendung von % ermöglicht Verbindungen von jedem Host aus, was Auswirkungen auf die Sicherheit haben kann.

Zusätzliche Informationen

Globale Privilegien

Um globale Berechtigungen zu gewähren, die für alle Datenbanken gelten, verwendest du die ON *.* Syntax. Dies gewährt die angegebenen Privilegien global.

Entzug von Privilegien

Um Privilegien zu entziehen, verwendest du die Anweisung REVOKE:

REVOKE privileges
ON database_name.table_name
FROM 'user'@'host';

Damit werden dem Benutzer die angegebenen Berechtigungen entzogen.

Tipps und bewährte Praktiken

  • Privilegien einschränken. Gewähre den Nutzern nur die notwendigen Berechtigungen, um Sicherheitsrisiken zu minimieren.
  • Verwende bestimmte Hostnamen. Wenn möglich, gib Hostnamen oder IP-Adressen an, um den Zugang zu beschränken, anstatt % für alle Hosts zu verwenden.
  • Verwalte deine Passwörter sicher. Verwende beim Einrichten von Benutzerkonten immer sichere, eindeutige Passwörter.
  • Überprüfe regelmäßig die Berechtigungen. Überprüfe regelmäßig und entziehe unnötige Privilegien, um optimale Sicherheit zu gewährleisten. Verwende die Tabelle mysql.user oder die entsprechenden Ansichten des Informationsschemas, um die bestehenden Benutzerrechte zu überprüfen.
  • Dokumentänderungen. Führe Aufzeichnungen über alle GRANT ausgestellten Bescheinigungen, damit du die Genehmigungen leicht nachverfolgen kannst.

SQL Upskilling für Einsteiger

Erwerbe die SQL-Kenntnisse, um mit deinen Daten zu interagieren und sie abzufragen.
Kostenloses Lernen beginnen