MySQL ist ein beliebtes und weit verbreitetes relationales Datenbankmanagementsystem für verschiedene Webanwendungen. Eine der wichtigen Aufgaben, die Datenbankadministratoren ausführen müssen, besteht darin, neue MySQL-Benutzer anzulegen und ihnen die entsprechenden Zugriffsrechte zu erteilen.
Zugriffsrechte oder privileges sind Regeln, die definieren, was ein Benutzer mit einer Datenbank, Tabelle, Spalte oder einem anderen Objekt tun kann. Durch das Gewähren geeigneter Zugriffsrechte können Sie die Sicherheit und Leistung Ihrer Datenbank verbessern.
In diesem Artikel erläutert Bardimin, wie Sie einen neuen MySQL-Benutzer erstellen und Zugriffsrechte über die Befehlszeile erteilen. Bardimin wird auch einige MySQL-Befehle besprechen, die für die Verwaltung von Benutzern und Zugriffsrechten nützlich sind.
Schritt 1: Melden Sie sich bei MySQL als root an
Bevor Sie einen neuen MySQL-Benutzer erstellen oder Berechtigungen erteilen können, müssen Sie bei MySQL als Root-Benutzer oder als anderer Benutzer mit GRANT Zugriffsrechten angemeldet sein. Der Root-Benutzer ist der Benutzer, der volle Zugriffsrechte auf alle MySQL-Datenbanken und -Objekte hat. Sie können sich mit dem folgenden Befehl als root bei MySQL anmelden:
mysql -u root -p
Mit diesem Befehl werden Sie aufgefordert, das Root-Passwort einzugeben, das Sie bei der Installation von MySQL erstellt haben. Sobald Sie das richtige Passwort eingegeben haben, wird eine MySQL-Eingabeaufforderung wie die folgende angezeigt:
mysql>
Schritt 2: Erstellen eines neuen MySQL-Benutzers
Nachdem Sie sich als root bei MySQL angemeldet haben, können Sie mit dem Befehl CREATE USER einen neuen MySQL-Benutzer erstellen . Das allgemeine Format dieses Befehls lautet wie folgt:
CREATE USER 'username''host' IDENTIFIED BY 'password';
Hier müssen Sie die username, host und password durch die entsprechenden Werte ersetzen. username ist der Name des Benutzers, den Sie erstellen möchten. host ist der Hostname oder die IP-Adresse, von der aus ein Benutzer eine Verbindung zu MySQL herstellen kann.
Sie können % verwenden, um anzugeben, dass Benutzer von überall aus eine Verbindung herstellen können, oder Sie können Benutzer darauf beschränken, nur von bestimmten Hosts aus eine Verbindung herzustellen. password ist das Kennwort, das Sie für den Benutzer festlegen möchten.
Wenn Sie z. B. einen Benutzer mit dem Namen user1 erstellen möchten, der von überall aus mit einem pass1 Kennwort eine Verbindung herstellen kann, können Sie den folgenden Befehl verwenden:
CREATE USER 'user1''%' IDENTIFIED BY 'pass1';
Wenn der Befehl erfolgreich ist, wird eine Meldung wie die folgende angezeigt:
Query OK, 0 rows affected (0.01 sec)
Sie können überprüfen, ob der Benutzer korrekt erstellt wurde, indem Sie den Befehl SELECT in der Tabelle mysql.user verwenden:
SELECT User, Host FROM mysql.user;
Mit diesem Befehl werden alle vorhandenen MySQL-Benutzer und deren Hosts angezeigt. Sie sollten Ergebnisse wie die folgenden sehen:
+------------------+-----------+ | User | Host | +------------------+-----------+ | root | localhost | | mysql.session | localhost | | mysql.sys | localhost | | user1 | % | +------------------+-----------+ 4 rows in set (0.00 sec)
Hier können Sie sehen, dass user1 Benutzer mit dem Host % erstellt wurde.
Schritt 3: Gewähren von Zugriffsrechten für neue MySQL-Benutzer
Nachdem Sie einen neuen MySQL-Benutzer erstellt haben, müssen Sie diesem Benutzer die entsprechenden Berechtigungen erteilen. Sie können Berechtigungen erteilen, indem Sie den Befehl GRANT verwenden. Das allgemeine Format dieses Befehls lautet wie folgt:
GRANT privileges ON database.table TO 'username''host';
Hier sollten Sie die privileges, database, table, username und host durch die entsprechenden Werte ersetzen. privileges ist das Zugriffsrecht, das Sie einem Benutzer gewähren möchten. Sie können bestimmte Zugriffsrechte wie SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, INDEX, EXECUTE, GRANT OPTION und mehr gewähren.
Sie können auch globale Zugriffsrechte wie ALL PRIVILEGES oder ALL gewähren, die alle vorhandenen Zugriffsrechte enthält. database ist der Name der Datenbank, für die Sie Zugriffsrechte erteilen möchten. Sie können * verwenden, um alle Datenbanken anzuzeigen. table ist der Name der Tabelle, für die Sie Zugriffsrechte erteilen möchten. Sie können auch * verwenden, um alle Tabellen anzuzeigen. username und host sind Benutzernamen und Hosts, die Sie zuvor erstellt haben.
Wenn Sie z. B. SELECT-, INSERT-, UPDATE– und DELETE Zugriffsrechte für user1 Benutzer für alle Tabellen in db1 Datenbank erteilen möchten, können Sie den folgenden Befehl verwenden:
GRANT SELECT, INSERT, UPDATE, DELETE ON db1.* TO 'user1''%';
Wenn der Befehl erfolgreich ist, wird eine Meldung wie die folgende angezeigt:
Query OK, 0 rows affected (0.01 sec)
Sie können überprüfen, ob Berechtigungen korrekt erteilt wurden, indem Sie den Befehl SHOW GRANTS verwenden:
SHOW GRANTS FOR 'user1''%';
Mit diesem Befehl werden alle Zugriffsrechte angezeigt, die dem user1 Benutzer gehören. Sie sollten Ergebnisse wie die folgenden sehen:
+--------------------------------------------------------------+
| Grants for user1% |
+--------------------------------------------------------------+
| GRANT USAGE ON *.* TO `user1``%` |
| GRANT SELECT, INSERT, UPDATE, DELETE ON `db1`.* TO `user1``%`|
+--------------------------------------------------------------+
2 rows in set (0.00 sec)
Hier können Sie sehen, dass user1 Benutzer die Zugriffsrechte SELECT, INSERT, UPDATE und DELETE für alle Tabellen in db1 Datenbank hat.
Schritt 4: Ändern oder Widerrufen der Zugriffsrechte eines MySQL-Benutzers
Wenn Sie die Berechtigungen eines MySQL-Benutzers ändern oder widerrufen möchten, können Sie den Befehl REVOKE verwenden. Das allgemeine Format dieses Befehls lautet wie folgt:
REVOKE privileges ON database.table FROM ‚username“host‘;
Hier sollten Sie die privileges, database, table, username und host durch die entsprechenden Werte ersetzen. privileges ist das Zugriffsrecht, das Sie ändern oder dem Benutzer entziehen möchten. Sie können bestimmte oder globale Zugriffsrechte verwenden, wie zuvor beschrieben. database, table, username und host sind die Namen von Datenbanken, Tabellen, Benutzern und Hosts, denen Sie zuvor Zugriffsrechte erteilt haben.
Wenn Sie z. B. DELETE Berechtigungen eines user1 Benutzers für alle Tabellen in db1 Datenbank widerrufen möchten, können Sie den folgenden Befehl verwenden:
REVOKE DELETE ON db1.* FROM 'user1''%';
Wenn der Befehl erfolgreich ist, wird eine Meldung wie die folgende angezeigt:
Query OK, 0 rows affected (0.01 sec)
Sie können überprüfen, ob die Zugriffsrechte korrekt entzogen wurden, indem Sie den Befehl SHOW GRANTS verwenden:
SHOW GRANTS FOR 'user1''%';
Mit diesem Befehl werden alle Zugriffsrechte angezeigt, die dem user1 Benutzer gehören. Sie sollten Ergebnisse wie die folgenden sehen:
+--------------------------------------------------------------+ | Grants for user1% | +--------------------------------------------------------------+ | GRANT USAGE ON *.* TO `user1``%` | | GRANT SELECT, INSERT, UPDATE ON `db1`.* TO `user1``%` | +--------------------------------------------------------------+ 2 rows in set (0.00 sec)
Hier können Sie sehen, dass DELETE Zugriffsrechte user1 Benutzern für alle Tabellen in db1 Datenbank entzogen wurden.
Weitere interessante Artikel
Schritt 5: MySQL-Benutzer löschen
Wenn Sie einen MySQL-Benutzer löschen möchten, können Sie den Befehl DROP USER verwenden. Das allgemeine Format dieses Befehls lautet wie folgt:
DROP USER 'username''host';
Hier müssen Sie die username und host durch den Benutzernamen und den Host ersetzen, den Sie entfernen möchten. Mit diesem Befehl werden der Benutzer und alle Berechtigungen, über die er verfügt, gelöscht.
Wenn Sie z. B. einen user1 Benutzer löschen möchten, können Sie den folgenden Befehl verwenden:
DROP USER 'user1''%';
Wenn der Befehl erfolgreich ist, wird eine Meldung wie die folgende angezeigt:
Query OK, 0 rows affected (0.01 sec)
Sie können überprüfen, ob ein Benutzer korrekt gelöscht wurde, indem Sie den Befehl SELECT in der Tabelle mysql.user verwenden:
SELECT User, Host FROM mysql.user;
Mit diesem Befehl werden alle vorhandenen MySQL-Benutzer und deren Hosts angezeigt. Sie sollten Ergebnisse wie die folgenden sehen:
+------------------+-----------+ | User | Host | +------------------+-----------+ | root | localhost | | mysql.session | localhost | | mysql.sys | localhost | +------------------+-----------+ 3 rows in set (0.00 sec)
Hier können Sie sehen, dass user1 Benutzer aus der MySQL-Benutzerliste entfernt wurde.
Schlussfolgerung
MySQL verfügt über mehrere nützliche Befehle zur Verwaltung von Benutzern und Zugriffsrechten. Mit diesen Befehlen können Sie Ihre MySQL-Datenbank besser und sicherer organisieren.
Ich hoffe, Sie finden diesen Artikel nützlich. Danke fürs Lesen.