Heim  >  Artikel  >  Datenbank  >  Welche Berechtigungen gibt es in MySQL?

Welche Berechtigungen gibt es in MySQL?

WBOY
WBOYOriginal
2022-05-16 15:28:277844Durchsuche

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.

Welche Berechtigungen gibt es in MySQL?

Die Betriebsumgebung dieses Tutorials: Windows10-System, MySQL8.0.22-Version, Dell G3-Computer.

Welche Berechtigungen gibt es in MySQL? Spezifische Klassifizierung von Berechtigungen. 1. Globale Ebene. Globale Berechtigungen gelten für alle Datenbanken auf einem bestimmten Server. Diese Berechtigungen werden in der Tabelle mysql.user gespeichert. GRANT ALL ON *.* und REVOKE ALL ON *.* gewähren und widerrufen nur globale Berechtigungen.

2. Datenbankebene

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. Tabellenebene

Tabellenberechtigungen 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. Spaltenebene

Spaltenberechtigungen 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. Unterprogrammebene

Die 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 DatenbankebeneWelche Berechtigungen gibt es in MySQL?

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;

Welche Berechtigungen gibt es in MySQL?

3. Test auf Tabellenebene

Erstellen Sie einen Testkontotest und erteilen Sie Berechtigungen auf Tabellenebene. Wie unten gezeigt: Welche Berechtigungen gibt es in MySQL?

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;

Welche Berechtigungen gibt es in MySQL?

4. Test auf Spaltenebene

Erstellen 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;

Welche Berechtigungen gibt es in MySQL?

5. Test auf Unterprogrammebene

Erstellen 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';

Welche Berechtigungen gibt es in MySQL?

Summary

Wenn 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.

Welche Berechtigungen gibt es in MySQL?Empfohlenes Lernen:

MySQL-Video-Tutorial

Das 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn