MySQL Nur-Lese-Benutzer erstellen
- Erstellen Sie einen schreibgeschützten Benutzer in MySQL
- Erstellen Sie ein neues MySQL-Benutzerkonto
-
Geben Sie dem Benutzer Zugriff auf den Befehl
SELECT
- Abschluss
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:
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:
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:
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:
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.
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.