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

Lösen Sie das Docker.Socket-Berechtigungsproblem des VSCode-Docker-Plugins

Lösung: Beenden Sie alle mit .vscode in Zusammenh...

Tiefgreifendes Verständnis von Worker-Threads in Node.js

Inhaltsverzeichnis Überblick Die Geschichte der C...

Spezifische Verwendung von Docker Anonymous Mount und Named Mount

Inhaltsverzeichnis Datenvolumen Anonyme und benan...

Vollständiges Installationstutorial zum Ubuntu 16.04-Image unter VMware

In diesem Artikel finden Sie das Installations-Tu...

Erstellen eines sekundären Menüs mit JavaScript

In diesem Artikelbeispiel wird der spezifische Ja...

So zeigen Sie die IP-Adresse von Linux in einer virtuellen VMware-Maschine an

1. Doppelklicken Sie zunächst auf das VMware-Symb...

Vue verwendet dynamische Komponenten, um einen TAB-Umschalteffekt zu erzielen

Inhaltsverzeichnis Problembeschreibung Was ist di...

CSS3 realisiert den grafischen Fallanimationseffekt

Sehen Sie zuerst den Effekt Implementierungscode ...

Designbeispiele für Dropdown-Menüs und Schiebemenüs

Ich habe viele Websites gefunden, die Dropdown- od...

So weisen Sie Feldern bei der MySQL-Abfrage Standardwerte zu

brauchen Wenn Sie ein Feld abfragen, müssen Sie e...

Zusammenfassung der Linux-Befehle zur Dateiverzeichnisverwaltung

Befehl „touch“ Es hat zwei Funktionen: Eine beste...

Installieren Sie Linux mithilfe einer virtuellen VMware-Maschine (CentOS7-Image).

1. VMware herunterladen und installieren Verknüpf...

Apropos ContentType(s) von image/x-png

Dies führte auch dazu, dass PNG-Dateien nicht hoch...