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

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 enthält eine große Auswahl an Optionen, die Benutzern bestimmte Berechtigungen für Tabellen und Datenbanken gewähren.

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

So erstellen Sie einen neuen Benutzer in MySQL

Um einen neuen Benutzer zu erstellen, melden Sie sich zuerst 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 ENTER . Danach erhalten Sie diese Eingabeaufforderung.

Verwenden Sie zum Erstellen eines neuen Benutzers die unten gezeigte Syntax:

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

Um beispielsweise einen neuen Benutzer mit dem Namen „tecmint“ zu erstellen ’ innerhalb der Datenbank, rufen Sie den Befehl auf:

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

Ein paar Punkte, die Sie beachten sollten

Beim lokalen Hinzufügen eines Benutzers, d. h. auf dem System, auf dem Sie MySQL installiert haben , wird der Host des Benutzers als localhost angegeben , und nicht die IP-Adresse. Das Schlüsselwort „localhost ‘ bedeutet übersetzt ‚dieser Computer ‘ und MySQL behandelt es eindeutig. Grundsätzlich wird localhost vom MySQL-Client verwendet, um eine Verbindung zum lokal installierten MySQL-Datenbankserver herzustellen.

Soweit die tecmint Der Benutzer hat keine Berechtigung, mit den Datenbanken zu interagieren. Tatsächlich kann der Benutzer nicht einmal auf die MySQL-Shell zugreifen.

Um dem Benutzer vollen Zugriff auf alle Datenbanken, einschließlich der Tabellen, zu gewähren, führen Sie.

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

Im obigen Befehl zeigen die Sternchen auf die Datenbank bzw. die Tabelle, auf die der Benutzer zugreifen kann. Es gewährt dem Benutzer alle Rechte auf die Datenbank – Lesen , schreiben , bearbeiten, und ausführen einschließlich der Durchführung aller Aufgaben über andere Datenbanken und Tabellen hinweg.

Bisher haben wir dem Benutzer vollen Zugriff auf die Datenbank gewährt. Während dies praktisch ist, um MySQL-Konzepte zu erklären, wird es 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 kommt. Wir werden weiter fortfahren und im nächsten Abschnitt besprechen, wie bestimmte Berechtigungen zugewiesen werden.

Wenn Sie dem Benutzer Berechtigungen zugewiesen haben, laden Sie alle Berechtigungen wie gezeigt neu, damit die Änderungen wirksam werden.

MariaDB [none]> FLUSH PRIVILEGES

So erteilen Sie verschiedene Benutzerberechtigungen

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

  • ALLE PRIVILEGIEN – Wie zuvor gesehen, gewährt dies einem MySQL-Benutzer vollen Zugriff auf eine bestimmte Datenbank.
  • ERSTELLEN – Ermöglicht Benutzern das Erstellen neuer Datenbanken oder Tabellen.
  • LÖSCHEN – Ermöglicht Benutzern das Löschen von Datenbanken oder Benutzern.
  • EINFÜGEN – Ermöglicht Benutzern das Einfügen von Zeilen in Tabellen.
  • LÖSCHEN – Ermöglicht Benutzern das Löschen von Zeilen aus Tabellen.
  • AUSWÄHLEN – Mit der Berechtigung „SELECT“ können Benutzer den Inhalt einer Tabelle lesen.
  • AKTUALISIEREN – Ermöglicht Benutzern, die Zeilen in einer Tabelle zu aktualisieren.
  • OPTION GEWÄHREN – Benutzer können die Privilegien anderer Benutzer gewähren oder entfernen.

Um einem bestimmten Benutzer die Berechtigung zu erteilen, verwenden Sie die 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 Berechtigungen zuweisen, indem Sie ein einzelnes Sternchensymbol wie gezeigt verwenden:

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

Zum Beispiel, um SELECT zuzuweisen Berechtigungen für 'tecmint ‘ Benutzer auf allen Tabellen der Datenbank testdb , 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;

Außerdem können Sie mehrere Berechtigungen auf einmal 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

Verwenden Sie die folgende Syntax, um einem Benutzer Berechtigungen zu entziehen:

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

Zum Beispiel, um INSERT zu widerrufen Berechtigungen des Benutzers „tecmint“. ’, 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 sehen, dass die INSERT Die Berechtigung wurde aus dem ‘tecmint gelöscht ’ Benutzer verlässt nur SELECT und AKTUALISIEREN Rechte auf der testdb Datenbank.

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

MariaDB [none]> quit;

Melden Sie sich dann erneut an.

$ sudo mysql -u tecmint -p

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

Um einen Benutzer zu löschen, verwenden Sie DROP Befehl, 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 Leistung von MySQL/MariaDB unter Linux
  • So ändern Sie den MySQL/MariaDB-Standardport unter Linux
  • So setzen Sie das MySQL- oder MariaDB-Root-Passwort unter Linux zurück
Schlussfolgerung

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