Berechtigungen von MySQL: 1. Globale Berechtigungen, gültig für alle Datenbanken auf dem Server, gespeichert in „mysql.user“; 2. Datenbankberechtigungen, gültig für alle Ziele in der Datenbank, gespeichert in „mysql.db“ und „mysql“. .host“; 3. Tabellenberechtigungen, anwendbar auf alle Spalten in der Tabelle; 4. Spaltenberechtigungen usw.
Die Betriebsumgebung dieses Tutorials: Windows10-System, MySQL8.0.22-Version, Dell G3-Computer.
Datenbankberechtigungen gelten für alle Ziele in einer bestimmten Datenbank. Diese Berechtigungen werden in den Tabellen mysql.db und mysql.host gespeichert. GRANT ALL ON db_name.* und REVOKE ALL ON db_name.* gewähren und widerrufen nur Datenbankberechtigungen.
3. TabellenebeneTabellenberechtigungen gelten für alle Spalten in einer bestimmten Tabelle. Diese Berechtigungen werden in der Tabelle mysql.tables_priv gespeichert. GRANT ALL ON db_name.tbl_name und REVOKE ALL ON db_name.tbl_name gewähren und widerrufen nur Tabellenberechtigungen.
4. SpaltenebeneSpaltenberechtigungen gelten für eine einzelne Spalte in einer bestimmten Tabelle. Diese Berechtigungen werden in der Tabelle mysql.columns_priv gespeichert. Wenn Sie REVOKE verwenden, müssen Sie dieselben Spalten wie die autorisierten Spalten angeben.
5. UnterprogrammebeneDie Berechtigungen CREATE ROUTINE, ALTER ROUTINE, EXECUTE und GRANT gelten für gespeicherte Unterprogramme. Diese Berechtigungen können auf globaler Ebene und Datenbankebene gewährt werden. Darüber hinaus können diese Berechtigungen zusätzlich zu CREATE ROUTINE auf Unterprogrammebene gewährt und in der Tabelle mysql.procs_priv gespeichert werden
Ergänzendes Wissen:1. Testen auf globaler Ebene
Erstellen Sie einen Testkontotest und gewähren Sie ihn Berechtigungen auf globaler Ebene. Wie unten gezeigt: mysql> set global validate_password_policy=0;
mysql> grant select,insert on *.* to test@'%' identified by 'test';
mysql> flush privileges;
Verwenden Sie die folgenden zwei Methoden, um die zum Testen gewährten Berechtigungen abzufragen. Wie unten gezeigt:
mysql> show grants for test; mysql> select * from mysql.user where user='test'G;
2. Test auf Datenbankebene
Erstellen Sie einen Testkontotest und erteilen Sie Berechtigungen auf Datenbankebene. Wie unten gezeigt:mysql> drop user test; mysql> grant select,insert,update,delete on jpcpdb.* to test@'%' identified by 'test@123'; mysql> select * from mysql.user where user='test'G; --可以看到无任何授权。 mysql> show grants for test; mysql> select * from mysql.db where user='test'G;
3. Test auf Tabellenebene
Erstellen Sie einen Testkontotest und erteilen Sie Berechtigungen auf Tabellenebene. Wie unten gezeigt:
mysql> drop user test; mysql> flush privileges; mysql> grant all on jpcpdb.user to test@'%' identified by 'test@123'; mysql> show grants for test; mysql> select * from mysql.tables_privG;4. Test auf SpaltenebeneErstellen Sie einen Testkontotest und erteilen Sie Berechtigungen auf Spaltenebene. Wie unten gezeigt:
mysql> drop user test; mysql> flush privileges; mysql> grant select (id, name) on jpcpdb.user to test@'%' identified by 'test@123'; mysql> flush privileges; mysql> select * from mysql.columns_priv; mysql> show grants for test;5. Test auf UnterprogrammebeneErstellen Sie einen Testkontotest und erteilen Sie Berechtigungen auf Unterprogrammebene. Wie unten gezeigt:
mysql> DROP PROCEDURE IF EXISTS PRC_TEST; mysql> DELIMITER // mysql> CREATE PROCEDURE PRC_TEST() -> BEGIN -> SELECT * FROM user; -> END // mysql> DELIMITER ; mysql> grant execute on procedure jpcpdb.PRC_TEST to test@'%' identified by 'test@123'; mysql> flush privileges; mysql> show grants for test;mysql> select * from mysql.procs_priv where User='test';SummaryWenn Sie die dem Benutzer gewährten Berechtigungen anzeigen müssen, müssen Sie die gewährten Berechtigungen dieser fünf anzeigen Ebenen. Überprüfen Sie die auf jeder Ebene erteilten Berechtigungen einzeln von oben nach unten oder von klein nach oben. Eine Datenbank ist ein allgemeines Datenverarbeitungssystem für eine Einheit oder einen Anwendungsbereich. Sie speichert eine Sammlung relevanter Daten von Unternehmen und Geschäftsabteilungen, Gruppen und Einzelpersonen. Die Daten in der Datenbank werden aus einer globalen Perspektive erstellt und nach einem bestimmten Datenmodell organisiert, beschrieben und gespeichert. Seine Struktur basiert auf der natürlichen Verbindung zwischen Daten, die alle notwendigen Zugriffswege bereitstellen können, und den Daten, die nicht mehr auf eine bestimmte Anwendung ausgerichtet sind, sondern auf die gesamte Organisation ausgerichtet sind und allgemeine Strukturmerkmale aufweisen.
Empfohlenes Lernen:
MySQL-Video-TutorialDas obige ist der detaillierte Inhalt vonWelche Berechtigungen gibt es in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!