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

Wie man mit React elegant CSS schreibt

Inhaltsverzeichnis 1. Inline-Stile 2. Importmetho...

Der Unterschied zwischen HTML-Iframe und Frameset_PowerNode Java Academy

Einführung 1. <iframe>-Tag: Ein Iframe ist ...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.6.22

In diesem Tutorial wird der spezifische Code der ...

CSS3 verwendet scale() und rotate() zum Zoomen und Drehen

1. scale()-Methode Zoom steht für „Verkleinern“ u...

Detaillierte Interpretation der Datei /etc/fstab im Linux-System

Vorwort [root@localhost ~]# cat /etc/fstab # # /e...

Beispiel für die Wertübertragung in einem HTML-Formular über die Get-Methode

Die google.html-Schnittstelle ist wie in der Abbil...

Detaillierte Erklärung der Javascript-Grundlagenschleife

Inhaltsverzeichnis Zyklus für für-in für-von währ...

Dieser Artikel zeigt Ihnen, wie Sie Vue 3.0 responsive verwenden

Inhaltsverzeichnis Anwendungsfälle Reaktive API-b...

Drei Methoden zum Ändern des Hostnamens von Centos7

Methode 1: Hostnamectl-Änderung Schritt 1 Überprü...

Detaillierte Erklärung des Docker Compose-Orchestrierungstools

Docker Compose Docker Compose ist ein Tool zum De...

Detaillierte Erklärung der Zählung ohne Filterbedingungen in MySQL

zählen(*) erreichen 1. MyISAM: Speichert die Gesa...

Eine kurze Diskussion über Schreibregeln für Docker Compose

Dieser Artikel stellt nichts im Zusammenhang mit ...

Vue implementiert ein Beispiel für eine verschachtelte Routing-Methode

1. Verschachteltes Routing wird auch als Sub-Rout...