Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Erstellen eines Benutzers auf MySQL

Unmittelbar nach der Installation von MySQL haben Sie den root Benutzer verfügbar.

Dies ist der Benutzer, den Sie verwenden könnten, um zu sehen, ob MySQL funktioniert, aber es sollte nicht der Benutzer für andere Arten von Verwendungen sein.

Wieso den? Weil es zu mächtig ist .

Mit großer Macht kommt große Verantwortung (sagte der Onkel von Spider-Man). Und vor allem große Gefahr bei Fehlern.

Stattdessen sollten Sie Ad-hoc-Benutzer erstellen, die nur Berechtigungen zum Ausführen ihrer Aufgaben haben, und nicht mehr. Gleiches gilt beispielsweise für die Verwendung von Linux oder einem beliebigen Unix-System:Sie möchten nicht den root verwenden Benutzer, sondern Ihr eigenes Benutzerkonto.

Um einen neuen Benutzer zu erstellen, verbinden Sie sich mit MySQL über root Benutzer:

mysql -u root -p

Verwenden Sie dann den Befehl

CREATE USER '<username>'@'localhost' IDENTIFIED BY '<password>';

Zum Beispiel, um einen Benutzer namens test_user zu erstellen mit Passwort test_password12A Führen Sie den Befehl aus:

CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'test_password12A';

Der Befehl sollte eine Zeile mit folgendem Inhalt zurückgeben:Query OK, 0 rows affected (X.XX sec) :

Wenn Sie ein ungültiges Passwort verwendet haben, würde das System Ihnen so etwas wie ERROR 1819 (HY000): Your password does not satisfy the current policy requirements mitteilen . In diesem Fall besagt der Fehler, dass das Passwort nicht komplex genug ist, da ich MySQL bei der Installation angewiesen habe, eine bestimmte Richtlinie für Passwörter zu verwenden.

Das ist großartig! Jetzt wurde der Benutzer erstellt und wir können uns mit diesem Benutzer mit MySQL verbinden. Sie können die Befehlszeile verlassen, indem Sie QUIT eingeben , und geben Sie Folgendes ein:

mysql -u test_user -p

Wenn ich jetzt versuche, eine Datenbank zu erstellen, erhalte ich die Fehlermeldung ERROR 1044 (42000): Access denied for user 'test_user'@'localhost' to database 'testing' :

Wieso den? Weil der Benutzer keine Berechtigung hat, eine neue Datenbank zu erstellen .

Wir werden in einem anderen Tutorial sehen, wie man mit Berechtigungen arbeitet.

Erwähnenswert ist der @'localhost' Zeichenfolge, die wir zum Erstellen des Benutzers verwendet haben. Dies teilt MySQL mit, dass der Benutzer sich nur von localhost verbinden kann. Das ist in Ordnung, wenn Sie Dinge testen und wenn eine Anwendung, die eine Verbindung zu MySQL herstellt, auf demselben Computer ausgeführt wird, auf dem das DBMS ausgeführt wird.

Wenn dies nicht zutrifft, müssen Sie entweder die IP manuell eingeben, von der aus der Benutzer eine Verbindung herstellt, oder den % verwenden Platzhalter:

CREATE USER 'test_user'@'%' IDENTIFIED BY 'test_password12A';

Ich möchte dieses Tutorial schließen, indem ich zeige, wie der von uns erstellte Benutzer entfernt wird:

DROP USER 'test_user'@'localhost';