In diesem Tutorial werden wir einen neuen Benutzer in MySQL hinzufügen und verschiedene Arten von Berechtigungen für eine MySQL-Datenbank gewähren.
Der MySQL-Server ermöglicht es uns, zahlreiche Benutzerkonten zu erstellen und entsprechende Berechtigungen zu erteilen, damit die Benutzer auf Datenbanken zugreifen und diese verwalten können. Sobald Sie MySQL auf dem Server installiert haben, müssen Sie eine Datenbank und zusätzliche Benutzerkonten erstellen.
Um die folgenden Befehle auszuführen, müssen Sie sich zuerst mit dem MySQL-Root-Konto beim MySQL-Server anmelden.
mysql -u root -p
So erstellen Sie einen neuen MySQL-Benutzer
Der CREATE USER
-Anweisung erstellt einen neuen Benutzer auf dem MySQL-Datenbankserver. Hier ist die grundlegende Syntax der Anweisung:
CREATE USER 'username'@'hostname' IDENTIFIED BY 'password';
Stellen Sie in der obigen Syntax sicher, dass Sie den Benutzernamen ersetzen und Passwort mit Ihrem gewünschten Benutzernamen und Passwort.
Legen Sie den hostname
fest zu localhost
wenn Sie möchten, dass der Benutzer sich nur vom localhost aus mit MySQL Server verbinden kann, was „diesen Computer“ bedeutet. Wenn Sie möchten, dass der Benutzer sich von jedem Host aus verbinden kann, verwenden Sie den %
Platzhalter als Hostname.
Zum Beispiel erstellen wir einen Benutzer mit dem Namen james
, und das Passwort MyStrongPass123
mit dem folgenden Befehl:
CREATE USER 'james'@'localhost' IDENTIFIED BY 'MyStrongPass123';
Dieser Benutzer kann jedoch mit keiner der MySQL-Datenbanken arbeiten, bis ihm zusätzliche Berechtigungen gewährt werden.
So gewähren Sie einem MySQL-Benutzer Berechtigungen
Unmittelbar nach dem erfolgreichen Erstellen des neuen Benutzers können wir diesem neuen Benutzer Berechtigungen erteilen. In den meisten Fällen erteilen Sie MySQL-Benutzern Berechtigungen basierend auf der bestimmten Datenbank, auf die das Konto Zugriff haben soll.
Es gibt mehrere Arten von Privilegien, die einem Benutzerkonto gewährt werden können. Eine vollständige Liste der von MySQL unterstützten Berechtigungen finden Sie hier.
ALL PRIVILEGES
– Gewährt einem Benutzerkonto alle Berechtigungen.ALTER
– Der Benutzer kann die Struktur einer Tabelle oder Datenbank ändern.CREATE
– Das Benutzerkonto darf Datenbanken und Tabellen erstellen.DROP
– Das Benutzerkonto darf Datenbanken und Tabellen löschen.DELETE
– Das Benutzerkonto darf Zeilen aus einer bestimmten Tabelle löschen.INSERT
– Das Benutzerkonto darf Zeilen in eine bestimmte Tabelle einfügen.SELECT
– Das Benutzerkonto darf eine Datenbank lesen.UPDATE
– Das Benutzerkonto darf Tabellenzeilen aktualisieren.
Um einem Benutzer Zugriff auf die MySQL-Datenbank zu gewähren und Berechtigungen zu erteilen, müssen Sie im Allgemeinen den folgenden GRANT
verwenden Aussage:
GRANT permission_type ON privilege_level TO 'username'@'hostname';
Um dem Benutzer james
alle Privilegien zu erteilen auf der jamesdb
Datenbank verwenden Sie den folgenden Befehl:
GRANT ALL PRIVILEGES ON jamesdb.* TO 'james'@'localhost';
Geben Sie Folgendes ein, um nur SELECT
zu gewähren und INSERT
Privilegien für den Benutzer james
auf der jamesdb
Datenbank:
GRANT SELECT, INSERT ON jamesdb.* TO 'james'@'localhost';
Großes SELECT
Privilegien für den Benutzer james
nur auf salaries
Tabelle zu den employees
Datenbank:
GRANT SELECT ON employees.salaries TO 'james'@'localhost';
In manchen Fällen möchten Sie vielleicht einen weiteren „Superuser“ erstellen. Um einem Benutzer die gleichen Rechte wie dem MySQL-Root-Benutzer zu gewähren , verwenden Sie den folgenden Befehl, der dem Benutzer james globale Privilegien gewährt Verbindung über localhost :
GRANT ALL ON *.* TO 'james'@'localhost' WITH GRANT OPTION;
Passwort eines MySQL-Benutzerkontos ändern
Angenommen, Sie möchten das Passwort für james
ändern Benutzer, der eine Verbindung von localhost
herstellt zu NewStrongPass123
, müssen Sie die folgende SQL-Anweisung ausführen:
ALTER USER 'james'@'localhost' IDENTIFIED BY 'NewStrongPass123';
Stellen Sie in der obigen SQL-Anweisung sicher, dass Sie james
ändern mit Ihrem Datenbankbenutzer und localhost
mit dem Host des Benutzers.
Zeige Privilegien für einen Benutzer in MySQL
In MySQL können Sie den SHOW GRANTS
verwenden Befehl, um alle Gewährungsinformationen für einen Benutzer anzuzeigen. Nehmen wir einige Beispiele.
Die folgende Anweisung verwendet den SHOW GRANTS
-Anweisung, um die Berechtigungen anzuzeigen, die dem aktuellen Benutzer gewährt wurden:
SHOW GRANTS;
Um die Grants für einen MySQL-Benutzer anzuzeigen, können Sie SHOW GRANTS
verwenden bei Angabe des Benutzernamens:
SHOW GRANTS FOR 'james'@'localhost';
Widerrufen Sie Berechtigungen von einem MySQL-Benutzerkonto
Die Syntax, um einem Benutzerkonto ein oder mehrere Privilegien zu entziehen, ist fast identisch mit der beim Gewähren von Privilegien.
Wenn Sie dem Benutzer james
Berechtigungen entziehen müssen auf einer jamesdb
Datenbank, wenden Sie die Syntax an, die der ähnlich ist, die Sie beim Erteilen von Berechtigungen verwendet haben:
REVOKE ALL PRIVILEGES ON jamesdb.* FROM 'james'@'localhost';
Benutzer aus MySQL entfernen
Anstatt die Berechtigungen zu widerrufen, möchten Sie möglicherweise auch diesen Benutzer entfernen. Sie können also einen Datenbankbenutzer mit dem folgenden Befehl entfernen:
DROP USER 'james'@'localhost';
Der obige Befehl entfernt den Benutzer james
zusammen mit all seinen Privilegien.
Speichern Ihrer Änderungen
Als letzten Schritt stellen Sie sicher, dass Sie jedes Mal, wenn Sie eine Berechtigung aktualisieren oder ändern, die FLUSH PRIVILEGES
verwenden Befehl.
FLUSH PRIVILEGES;
Fazit
Nach Abschluss dieses Tutorials sollten Sie wissen, wie Sie neue Benutzer hinzufügen und ihnen eine Vielzahl von Berechtigungen in einer MySQL-Datenbank erteilen.
Wenn Sie Fragen oder Feedback haben, können Sie gerne einen Kommentar hinterlassen.