Detaillierte Erklärung der neuen Funktion ROLE in MySQL 8

Detaillierte Erklärung der neuen Funktion ROLE in MySQL 8

Welche Probleme löst MySQL ROLE?

Wenn Sie ein DBA mit guten beruflichen Qualitäten sind und mehr Wert auf die Berechtigungsverwaltung legen, sind Sie möglicherweise auf ein solches Problem gestoßen: Es gibt mehrere Entwicklerkonten in der Datenbank. Eines Tages müssen Sie

Wenn Sie möchten, dass alle vorherigen Konten Tabellen unter einem neuen Schema betreiben können, müssen Sie dem ersten Konto vor MySQL-8.0 separat Berechtigungen erteilen.

mysql-8.0.x abstrahiert Berechtigungen und verwendet ROLE, um sie darzustellen. Wenn Sie einer ROLE neue Berechtigungen hinzufügen, ändern sich auch die Berechtigungen aller Benutzer, die dieser ROLE zugeordnet sind.

Das obige Szenario kann mit nur einer SQL-Anweisung in MySQL 8.0.x gelöst werden.

【Intelligente MySQL-Entwicklung】

MySQL hat ROLE auf sehr clevere Weise eingeführt. Da ROLE ein Symbol für eine Reihe von Berechtigungen ist, existiert dieses Ding bereits in MySQL! Es ist USER.

1): Erstelle einen Charakter

Rolle „Devgroup“ erstellen;

Als ich mir die mysql.user-Tabelle ansah, war ich wirklich überrascht von der Intelligenz von MySQL.

Wählen Sie Benutzer, Host aus mysql.user;                              
+------------------+------------+
| Benutzer | Gastgeber |
+------------------+------------+
| Entwicklergruppe | % |
| Sicherung | 127.0.0.1 |
| mysql.sys | lokaler Host |
| Stammverzeichnis | lokaler Host |
+------------------+------------+

Die Rolle ist eigentlich nur ein Benutzer!

2): Rollen stärken

gewähre der Entwicklergruppe alles auf tempdb.*;                             
Abfrage OK, 0 Zeilen betroffen (0,07 Sek.)

Es handelt sich dabei exakt um das gleiche wie beim Bedienbenutzer!

3): Erstellen Sie einen Benutzer und weisen Sie ihm die Rollenberechtigungen zu

Erstellen Sie den Benutzer tom@'127.0.0.1' mit der Identifizierung '123456'.                     
Abfrage OK, 0 Zeilen betroffen (0,09 Sek.)

gewähre tom@'127.0.0.1' die Entwicklergruppe;                             
Abfrage OK, 0 Zeilen betroffen (0,09 Sek.)

4): Testen Sie, ob sich der neu erstellte Benutzer anmelden kann

mysql -h127.0.0.1 -P3306 -utom -p123456                     
mysql: [Warnung] Die Verwendung eines Passworts in der Befehlszeilenschnittstelle kann unsicher sein.
Willkommen beim MySQL-Monitor. Befehle enden mit ; ​​oder \g.
Ihre MySQL-Verbindungs-ID ist 16
Serverversion: 8.0.13 MySQL Community Server – GPL

Copyright (c) 2000, 2018, Oracle und/oder seine Tochtergesellschaften. Alle Rechte vorbehalten.

Oracle ist eine eingetragene Marke der Oracle Corporation und/oder ihrer
Tochtergesellschaften. Andere Namen können Marken ihrer jeweiligen
Eigentümer.

Geben Sie „help;“ oder „\h“ ein, um Hilfe zu erhalten. Geben Sie „\c“ ein, um die aktuelle Eingabeanweisung zu löschen.

mysql> Berechtigungen anzeigen;                                        
+----------------------------------------------+
| Zuschüsse für [email protected] |
+----------------------------------------------+
| GRANT USAGE ON *.* TO `tom`@`127.0.0.1` |
| GRANT `devgroup`@`%` TO `tom`@`127.0.0.1` |
+----------------------------------------------+
2 Zeilen im Satz (0,00 Sek.)

[Rolle und Benutzer sind nur zwei Seiten derselben Medaille]

Wenn Sie immer noch der Meinung sind, dass "Rolle" und "Benutzer" zwei verschiedene Dinge sind, dann kann ich nur den ultimativen Zug verwenden

1): Weisen Sie dem Tom-Benutzer jetzt den Benutzer [email protected] als Rolle zu

gewähren Sie tom@'127.0.0.1' root@'127.0.0.1';                         
Abfrage OK, 0 Zeilen betroffen (0,04 Sek.)

2): Benutzer tom überprüft seine eigenen Berechtigungen

Zuschüsse anzeigen;
+------------------------------------------------------------------+
| Zuschüsse für [email protected] |
+------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `tom`@`127.0.0.1` |
| GRANT `devgroup`@`%`,`root`@`127.0.0.1` TO `tom`@`127.0.0.1` |
+------------------------------------------------------------------+
2 Zeilen im Satz (0,00 Sek.)

Sie können sehen, dass die Berechtigungen von [email protected] festgelegt wurden. Da es sich bei allen um Root-Benutzerberechtigungen handelt, löschen wir eine Tempdb-Bibliothek und werfen einen Blick darauf!

3): Löschen Sie die Bibliothek

Datenbank tempdb löschen;                                    
FEHLER 1044 (42000): Dem Benutzer „tom“@„127.0.0.1“ wurde der Zugriff auf die Datenbank „tempdb“ verweigert.

Es scheint, dass Sie nicht die Berechtigung haben, diese Bibliothek zu löschen! Tatsächlich aktiviert MySQL-8 Rollen nicht standardmäßig. Ob Rollen aktiviert werden, wird durch den Parameter activate_all_roles_on_login gesteuert.

4): Aktivieren Sie activate_all_roles_on_login

setze @@global.activate_all_roles_on_login=1;
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

5): Melden Sie sich erneut bei Tom an und versuchen Sie, die Tempdb-Datenbank zu löschen

mysql -h127.0.0.1 -P3306 -utom -p123456                     
mysql: [Warnung] Die Verwendung eines Passworts in der Befehlszeilenschnittstelle kann unsicher sein.
Willkommen beim MySQL-Monitor. Befehle enden mit ; ​​oder \g.
Ihre MySQL-Verbindungs-ID ist 18
Serverversion: 8.0.13 MySQL Community Server – GPL

Copyright (c) 2000, 2018, Oracle und/oder seine Tochtergesellschaften. Alle Rechte vorbehalten.

Oracle ist eine eingetragene Marke der Oracle Corporation und/oder ihrer
Tochtergesellschaften. Andere Namen können Marken ihrer jeweiligen
Eigentümer.

Geben Sie „help;“ oder „\h“ ein, um Hilfe zu erhalten. Geben Sie „\c“ ein, um die aktuelle Eingabeanweisung zu löschen.

mysql> verwende tempdb;
Datenbank geändert
mysql> Datenbanken anzeigen;
+--------------------+
| Datenbank |
+--------------------+
| Informationsschema |
|mysql |
| Leistungsschema |
|System|
| tempdb |
+--------------------+
5 Zeilen im Satz (0,01 Sek.)

mysql> Datenbank tempdb löschen;                                    
Abfrage OK, 0 Zeilen betroffen (0,09 Sek.)

Oben finden Sie eine ausführliche Erläuterung der neuen Funktion ROLE von MySQL 8. Weitere Informationen zur neuen Funktion ROLE von MySQL 8 finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Grundsätze und Nutzungsdetails für MySQL 8.0-Benutzer- und Rollenverwaltung
  • Einführung in MySQL-Rollenfunktionen

<<:  Reine JS-Methode zum Exportieren von Tabellen nach Excel

>>:  Zusammenfassung der Dateninteraktion zwischen Docker-Container und Host

Artikel empfehlen

Quellcodeanalyse des Nodejs-Modulsystems

Inhaltsverzeichnis Überblick CommonJS-Spezifikati...

Tutorial zur Installation von MySQL auf Alibaba Cloud Centos 7.5

Es scheint, dass die MySQL-Server-Datei zur norma...

So bereinigen Sie Daten in einer MySQL-Onlinedatenbank

Inhaltsverzeichnis 01 Szenarioanalyse 02 Funktion...

Erfahren Sie, wie Sie saubere und standardmäßige HTML-Tags schreiben

Guter HTML-Code ist die Grundlage einer schönen W...

Warum der CSS-Attributwert clear:right im Detail nicht funktioniert

Die Verwendung der Clear-Eigenschaft zum Löschen v...

Tipps zur MySql-SQL-Optimierung teilen

Eines Tages stellte ich fest, dass die Ausführung...

MySQL bedingte Abfrage und/oder Verwendung und Priorität Beispielanalyse

Dieser Artikel veranschaulicht anhand von Beispie...

So beheben Sie den MySQL-Fehler 10061

In diesem Artikel erfahren Sie die Lösung für das...

Detaillierte Erklärung zur Erstellung von Schießspielen mit CocosCreator

Inhaltsverzeichnis Szeneneinstellung Spielressour...

Beispiel einer Vorrendering-Methode für eine Vue-Einzelseitenanwendung

Inhaltsverzeichnis Vorwort vue-cli 2.0 Version vu...

Detaillierte Erklärung der Linux-Befehle und der Dateisuche

1. Führen Sie eine Dateinamensuche durch which (S...