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:
|
<<: Reine JS-Methode zum Exportieren von Tabellen nach Excel
>>: Zusammenfassung der Dateninteraktion zwischen Docker-Container und Host
Einstellungen für Hintergrundfarbe und Transparen...
Inhaltsverzeichnis Grundlegende Verwendung von Pr...
Inhaltsverzeichnis 1. IDEA lädt das Docker-Plugin...
Inhaltsverzeichnis Cluster-Cluster Clusterdetails...
Führen Sie cmd mit Administratorrechten aus slmgr...
Windows Server 2019 ist das neueste Server-Betrie...
Aufgrund der zunehmenden Anzahl von Schaltflächen...
Verwenden Sie hauptsächlich die Eigenschaften „pr...
Nach der Konfiguration der TabBar im WeChat-Apple...
Das im Titel angesprochene Problem lässt sich sch...
Inhaltsverzeichnis 1. Benutzerdefinierte Anweisun...
Lösung: Beenden Sie alle mit .vscode in Zusammenh...
Im Folgenden stellen wir drei Möglichkeiten zum Z...
Entwicklungstrends: html (Hypertext-Markup-Sprache...