MySQL Nur-Lese-Benutzer erstellen

Migel Hewage Nimesha 15 Februar 2024
  1. Erstellen Sie einen schreibgeschützten Benutzer in MySQL
  2. Erstellen Sie ein neues MySQL-Benutzerkonto
  3. Geben Sie dem Benutzer Zugriff auf den Befehl SELECT
  4. Abschluss
MySQL Nur-Lese-Benutzer erstellen

Es kann häufig erforderlich sein, dass ein Benutzer mit schreibgeschützten Anmeldeinformationen Zugriff auf eine Datenbank erstellt. Der Benutzer darf nur die in der Datenbank gespeicherten Daten sehen oder lesen; sie dürfen den Inhalt oder die Art der Einrichtung nicht verändern.

In diesem Artikel wird hauptsächlich erläutert, wie Sie einen schreibgeschützten Benutzer in MySQL erstellen. Sie müssen einen Benutzer erstellen, der nur im Lesemodus auf eine Datenbank zugreifen kann.

Erstellen Sie einen schreibgeschützten Benutzer in MySQL

Um den schreibgeschützten Benutzer in MySQL zu erstellen, verwenden Sie den folgenden Befehl an Ihrem Terminal oder an der Eingabeaufforderung, um sich als MySQL-Administrator anzumelden.

mysql -u root -p

Die Eingabeaufforderung für das Passwort wird angezeigt. Geben Sie dann das Passwort des Root-Kontos ein.

Ausgang:

Geben Sie das Passwort für das Root-Konto ein

Erstellen Sie ein neues MySQL-Benutzerkonto

CREATE USER 'report'@'%' IDENTIFIED BY 'secret';

Der Benutzerbericht kann das % im obigen Befehl verwenden, wie gezeigt, um von jedem Host aus beizutreten. Sie können den Zugriff einschränken, nachdem Sie den Host angegeben haben, von dem aus der Benutzer eine Verbindung herstellen kann.

Der Benutzer kann nur dann von demselben Computer aus beitreten, wenn diese Informationen weggelassen werden.

Ausgang:

Erstellen Sie ein neues MySQL-Benutzerkonto

Geben Sie dem Benutzer Zugriff auf den Befehl SELECT

GRANT SELECT ON database_name.* TO 'report'@'%';

Sie müssen beide dieser Privilegien, die Sie gewähren, und das Privileg GRANT OPTION besitzen, um GRANT verwenden zu können. (Alternativ können Sie jedem Konto beliebige Berechtigungen erteilen, wenn Sie die Berechtigung UPDATE für die Schema-Grant-Tabellen des MySQL-Systems haben).

Mit diesem Befehl wird dem Benutzer nur Lesezugriff auf die Datenbank auf dem lokalen Host gewährt. Geben Sie den folgenden Befehl ein, wenn Sie den Hostnamen oder die IP-Adresse des Hosts kennen, auf dem der Collector installiert wird.

Ausgang:

Gewähren Sie dem Benutzer Zugriff

GRANT SELECT ON database_name.* TO 'report'@'host_name or IP_address';

Führen Sie den folgenden Befehl aus, um die Berechtigungsanpassungen zu speichern und anzuwenden.

FLUSH PRIVILEGES;
SHOW GRANTS FOR 'report'@'host_name or IP_address';

Geben Sie am Ende das Wort ganz ein und zeigen Sie zur Bestätigung die autorisierten Berechtigungen des Benutzers an.

Da sich MySQL 8 von früheren Versionen unterscheidet, müssen wir den Anweisungen folgen. Aber Sie müssen es in zwei Phasen nacheinander tun:

CREATE USER 'readonly_user'@'localhost' IDENTIFIED BY 'some_strong_password';
GRANT SELECT, SHOW VIEW ON *.* TO 'readonly_user'@'localhost';
FLUSH PRIVILEGES;

MySQL-Entwickler wünschen sich zusätzliche Funktionen, und MySQL 8.0 liefert eine Reihe davon in den Bereichen SQL, JSON, reguläre Ausdrücke und GIS.

UTF8MB4 wurde in Version 8.0 als Standardzeichensatz verwendet, weil Entwickler auch Emojis speichern können möchten.

Schließlich gibt es Verbesserungen an Datentypen, einschließlich erweiterter IPv6- und UUID-Funktionen und bitweise Operationen auf BINARY-Datentypen.

Ausgang:

zeigt die autorisierten Privilegien des Benutzers an

Die folgenden sind weitere Nur-Lese-Berechtigungen.

Nur-Lese-Berechtigungen Beschreibung
ANSICHT ZEIGEN Ermöglicht ihnen, das Ansichtsschema anzuzeigen.
DATENBANKEN ANZEIGEN Ermöglicht ihnen, Datenbanken anzuzeigen.
REPLIKATIONS-CLIENT Ermöglicht ihnen, den Replikations-/Slave-Status zu überprüfen. Aber sie müssen alle DB zulassen.
PROCESS Ermöglicht ihnen, den laufenden Prozess zu überprüfen. Es funktioniert nur mit allen DB.

Im Folgenden sind einige Berechtigungen aufgeführt, die Sie einem Benutzer erteilen können.

Berechtigungen Beschreibung
ALL Dies würde einem MySQL-Benutzer den gesamten Zugriff ermöglichen.
ALLE PRIVILEGIEN MySQL-Benutzer hätten vollen Zugriff.
CREATE Ermöglicht ihnen, neue Datenbanken oder Tabellen zu entwickeln.
DROP Ermöglicht ihnen, Datenbanken oder Tabellen zu entfernen.
DELETE Ermöglicht es ihnen, Zeilen aus Tabellen zu entfernen.
INSERT Ermöglicht ihnen, Zeilen in Tabellen einzufügen.
SELECT Ermöglicht ihnen, eine Datenbank mit dem Befehl SELECT zu lesen.
ANSICHT ZEIGEN Ermöglicht ihnen, das Ansichtsschema anzuzeigen.
REPLIKATIONS-CLIENT Ermöglicht es ihnen, den Replikations-/Slave-Status zu überprüfen, aber sie müssen alle DB zulassen.
PROCESS Ermöglicht ihnen, den laufenden Prozess zu überprüfen. Es funktioniert nur mit allen DB.
UPDATE Ermöglicht ihnen, Tabellenzeilen zu aktualisieren.
ERTEILUNGSOPTION Ermöglicht es ihnen, andere Benutzerrechte zu erteilen oder zu entziehen.

Verwenden Sie das folgende Framework, um einem bestimmten Benutzer Berechtigungen zu erteilen:

GRANT [type of permission list separated by a comma] ON [database name].[table name] TO [username]@'[hostname]’;

Abschluss

In diesem Artikel haben wir das Erstellen eines schreibgeschützten Benutzers in MySQL besprochen. Damit greift der Benutzer nur lesend auf die Datenbank zu und kann nur vom lokalen Host darauf zugreifen.

Ein Passwort identifiziert immer den Nur-Lese-Benutzer. Wie bereits erwähnt, können wir mehrere Befehle in der MySQL-Befehlszeile verwenden, um einen Benutzer für den Zugriff auf schreibgeschützte Daten in der Datenbank zu erstellen.

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.