Website-Suche

So erstellen Sie einen neuen Benutzer und erteilen Berechtigungen in MySQL


MySQL ist ein beliebtes und weit verbreitetes Datenbankverwaltungssystem, das Daten speichert und organisiert und es Benutzern ermöglicht, sie abzurufen. Es verfügt über eine Vielzahl von Optionen, die Benutzern bestimmte Berechtigungen für Tabellen und Datenbanken gewähren.

In dieser Anleitung erfahren Sie, wie Sie einen neuen Benutzer erstellen und Berechtigungen in der MySQL-Datenbank erteilen.

So erstellen Sie einen neuen Benutzer in MySQL

Um einen neuen Benutzer zu erstellen, melden Sie sich zunächst bei der MySQL-Shell an.

sudo mysql -u root -p

Geben Sie das Sudo-Passwort gefolgt von dem Passwort ein, das Sie beim Einrichten der MySQL-Datenbank angegeben haben, und drücken Sie die EINGABE-Taste. Anschließend erhalten Sie diese Eingabeaufforderung.

Um einen neuen Benutzer zu erstellen, verwenden Sie die unten gezeigte Syntax:

MariaDB [none]> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

Um beispielsweise einen neuen Benutzer namens „tecmint“ in der Datenbank zu erstellen, rufen Sie den folgenden Befehl auf:

MariaDB [none]> CREATE USER 'tecmint'@'localhost' IDENTIFIED BY 'QkYKmw$5tec';

Ein paar Punkte, die Sie beachten sollten

Wenn Sie einen Benutzer lokal hinzufügen, d. h. auf dem System, auf dem Sie MySQL installiert haben, wird der Host des Benutzers als localhost und nicht als IP-Adresse angegeben. Das Schlüsselwort „localhost“ bedeutet „dieser Computer“ und MySQL behandelt ihn eindeutig. Grundsätzlich wird localhost vom MySQL-Client verwendet, um eine Verbindung zum lokal installierten MySQL-Datenbankserver herzustellen.

Bisher hat der tecmint-Benutzer keine Berechtigungen zur Interaktion mit den Datenbanken. Tatsächlich kann der Benutzer nicht einmal auf die MySQL-Shell zugreifen.

Um dem Benutzer vollständigen Zugriff auf alle Datenbanken, einschließlich der Tabellen, zu gewähren, führen Sie Folgendes aus:

MariaDB [none]> GRANT ALL PRIVILEGES ON * . * TO 'tecmint'@'localhost';

Im obigen Befehl verweisen die Sternchen auf die Datenbank bzw. die Tabelle, auf die der Benutzer zugreifen kann. Es gewährt dem Benutzer alle Rechte an der Datenbank – Lesen, Schreiben, Bearbeiten und Ausführen, einschließlich aller Rechte die Aufgaben auch über andere Datenbanken und Tabellen hinweg.

Bisher haben wir dem Benutzer vollen Zugriff auf die Datenbank gewährt. Dies ist zwar praktisch, um MySQL-Konzepte zu erklären, wird jedoch im Allgemeinen nicht empfohlen, da es ein Sicherheitsrisiko für Ihre Datenbanken darstellen könnte. Denken Sie nur daran, was passieren könnte, wenn ein Hacker an das Passwort des Benutzers gelangen würde. Wir werden im nächsten Abschnitt weitermachen und besprechen, wie bestimmte Berechtigungen zugewiesen werden.

Wenn Sie mit der Zuweisung von Berechtigungen für den Benutzer fertig sind, laden Sie alle Berechtigungen wie gezeigt neu, damit die Änderungen wirksam werden.

MariaDB [none]> FLUSH PRIVILEGES

So erteilen Sie unterschiedliche Benutzerberechtigungen

Hier ist eine Aufschlüsselung der möglichen Berechtigungen, die Sie Benutzern erteilen können:

  • ALLE PRIVILEGIEN – Wie bereits erwähnt, gewährt dies einem MySQL-Benutzer vollen Zugriff auf eine bestimmte Datenbank.
  • ERSTELLEN – Ermöglicht Benutzern das Erstellen neuer Datenbanken oder Tabellen.
  • DROP – Ermöglicht Benutzern das Löschen von Datenbanken oder Benutzern.
  • INSERT – Ermöglicht Benutzern das Einfügen von Zeilen in Tabellen.
  • LÖSCHEN – Ermöglicht Benutzern das Löschen von Zeilen aus Tabellen.
  • SELECT – mit der Berechtigung „SELECT“ können Benutzer den Inhalt einer Tabelle lesen.
  • UPDATE – Ermöglicht Benutzern das Aktualisieren der Zeilen in einer Tabelle.
  • GRANT OPTION – Benutzer können die Berechtigungen anderer Benutzer gewähren oder entziehen.

Um eine bestimmte Benutzerberechtigung zu erteilen, verwenden Sie die folgende Syntax:

MariaDB [none]> GRANT permission_type ON database_name.table_name TO 'username'@'localhost';

Darüber hinaus können Sie allen Tabellen in einer Datenbank mit einem einzigen Sternchen Berechtigungen zuweisen, wie gezeigt:

MariaDB [none]> GRANT permission_type ON database_name.* TO 'username'@'localhost';

Um beispielsweise dem Benutzer „tecmint SELECT-Berechtigungen für alle Tabellen der Datenbank testdb zuzuweisen, führen Sie den Befehl aus.

MariaDB [none]> GRANT SELECT ON testdb.* TO 'tecmint'@'localhost';

Löschen Sie dann die Berechtigungen, damit die Änderungen wirksam werden.

MariaDB [none]> FLUSH PRIVILEGES;

Darüber hinaus können Sie mehrere Berechtigungen gleichzeitig zuweisen, indem Sie sie wie gezeigt durch ein Komma trennen.

MariaDB [none]> GRANT INSERT, UPDATE ON testdb.* TO 'tecmint'@'localhost';

So widerrufen Sie MySQL-Berechtigungen

Um einem Benutzer Berechtigungen zu entziehen, verwenden Sie die folgende Syntax:

MariaDB [none]> REVOKE permission_type ON database_name.table_name FROM 'username'@'localhost';

Um beispielsweise dem Benutzer „tecmint“ die INSERT-Berechtigungen zu entziehen, führen Sie den Befehl aus.

MariaDB [none]> REVOKE INSERT ON testdb.* FROM tecmint'@'localhost';
MariaDB [none]> FLUSH PRIVILEGES

Um einen Blick auf die aktuellen Berechtigungen eines Benutzers zu werfen, führen Sie Folgendes aus:

MariaDB [none]> SHOW GRANTS FOR 'username'@'localhost';

Aus der Ausgabe unten können wir ersehen, dass die Berechtigung INSERT vom Benutzer „tecmint“ entfernt wurde, so dass nur noch SELECT und UPDATE übrig sind Rechte für die testdb-Datenbank.

Um die Anmeldung bei der MySQL-Shell mit dem neuen Benutzer zu testen, melden Sie sich zunächst ab.

MariaDB [none]> quit;

Anschließend melden Sie sich erneut an.

sudo mysql -u tecmint -p

Geben Sie das Passwort des Benutzers ein und drücken Sie die Eingabetaste, um auf die Shell zuzugreifen.

Um einen Benutzer zu löschen, verwenden Sie den Befehl DROP, genau wie beim Löschen einer Datenbank.

MariaDB [none]> DROP USER 'username'@'localhost';

Vielleicht möchten Sie auch die folgenden MySQL-bezogenen Artikel lesen:

  • Nützliche Tipps zur Behebung häufiger Fehler in MySQL
  • Mytop – Ein nützliches Tool zur Überwachung der MySQL/MariaDB-Leistung unter Linux
  • So ändern Sie den Standard-MySQL/MariaDB-Port unter Linux
  • So setzen Sie das MySQL- oder MariaDB-Root-Passwort unter Linux zurück
Abschluss

Hoffentlich können Sie inzwischen Benutzer auf Ihren MySQL-Datenbankservern erstellen und bequem Berechtigungen zuweisen oder widerrufen.