Eine kurze Erläuterung der MySQL-Benutzerberechtigungstabelle

Eine kurze Erläuterung der MySQL-Benutzerberechtigungstabelle

MySQL erstellt bei der Installation automatisch eine Datenbank mit dem Namen mysql. In der mysql-Datenbank werden Benutzerberechtigungstabellen gespeichert. Nachdem sich der Benutzer angemeldet hat, erteilt MySQL jedem Benutzer basierend auf dem Inhalt dieser Berechtigungstabellen entsprechende Berechtigungen.

Die Benutzertabelle ist die wichtigste Berechtigungstabelle in MySQL. Sie wird zum Aufzeichnen von Kontoinformationen verwendet, die für die Verbindung mit dem Server berechtigt sind. Es ist zu beachten, dass alle in der Benutzertabelle aktivierten Berechtigungen global sind und für alle Datenbanken gelten.

Die Felder in der Benutzertabelle können grob in vier Kategorien unterteilt werden, nämlich Benutzerspalte, Berechtigungsspalte, Sicherheitsspalte und Ressourcensteuerungsspalte. Im Folgenden wird hauptsächlich die Bedeutung dieser Felder vorgestellt.

Benutzerspalte

In der Benutzerspalte werden die Informationen gespeichert, die der Benutzer bei der Verbindung mit der MySQL-Datenbank eingeben muss. Es ist zu beachten, dass die MySQL-Version 5.7 als Kennwortfeld nicht mehr „Password“ verwendet, sondern es in „authentifizierungsstring“ geändert hat.

Die Benutzerliste für MySQL 5.7 wird in Tabelle 1 angezeigt.

Feldname Feldtyp Ist es leer? Standardwert veranschaulichen
Gastgeber char(60) NEIN keiner Hostname
Benutzer char(32) NEIN keiner Benutzername
Authentifizierungszeichenfolge Text JA keiner Passwort

Tabelle 1: Spalte „Benutzer“ der Benutzertabelle

Wenn sich ein Benutzer anmeldet, gestattet das MySQL-Datenbanksystem ihm die Anmeldung nur, wenn diese drei Felder gleichzeitig übereinstimmen. Beim Anlegen eines neuen Benutzers werden auch die Werte dieser drei Felder festgelegt. Wenn Sie das Kennwort eines Benutzers ändern, ändern Sie tatsächlich den Wert des Felds „authentifizierungsstring“ in der Benutzertabelle. Daher bestimmen diese 3 Felder, ob sich der Benutzer anmelden kann.

Spalte „Berechtigung“

Die Felder in der Berechtigungsspalte bestimmen die Berechtigungen des Benutzers und werden verwendet, um die Vorgänge zu beschreiben, die global für Daten und Datenbanken zulässig sind.

Berechtigungen werden grob in zwei Kategorien unterteilt, nämlich erweiterte Verwaltungsberechtigungen und normale Berechtigungen:

  • Erweiterte Verwaltungsberechtigungen verwalten hauptsächlich die Datenbank, z. B. Berechtigungen zum Herunterfahren von Diensten, Superberechtigungen und Laden von Benutzern.
  • Gewöhnliche Berechtigungen dienen hauptsächlich der Bedienung der Datenbank, wie z. B. Abfrageberechtigungen, Änderungsberechtigungen usw.

Die Berechtigungsspalten der Benutzertabelle umfassen Select_priv, Insert_priv und andere Felder, die mit priv enden. Der Datentyp dieser Feldwerte ist ENUM und die möglichen Werte sind nur Y und N: Y bedeutet, dass der Benutzer über die entsprechende Berechtigung verfügt, und N bedeutet, dass der Benutzer nicht über die entsprechende Berechtigung verfügt. Aus Sicherheitsgründen sind die Standardwerte dieser Felder alle N.

Feldname Feldtyp Ist es leer? Standardwert veranschaulichen
Select_priv Aufzählung('N','J') NEIN N Ist es möglich, Daten über den SELECT-Befehl abzufragen?
Insert_priv Aufzählung('N','J') NEIN N Ist es möglich, Daten über den INSERT-Befehl einzufügen?
Update_priv Aufzählung('N','J') NEIN N Ist es möglich, bestehende Daten durch den UPDATE-Befehl zu ändern?
Delete_priv Aufzählung('N','J') NEIN N Ist es möglich, vorhandene Daten mit dem DELETE-Befehl zu löschen?
Create_priv Aufzählung('N','J') NEIN N Ist es möglich, neue Datenbanken und Tabellen zu erstellen?
Drop_priv Aufzählung('N','J') NEIN N Ist es möglich, vorhandene Datenbanken und Tabellen zu löschen?
Reload_priv Aufzählung('N','J') NEIN N Ist es möglich, bestimmte Befehle auszuführen, die die verschiedenen von MySQL verwendeten internen Caches, einschließlich Protokolle, Berechtigungen, Hosts, Abfragen und Tabellen, leeren und neu laden?
Shutdown_priv Aufzählung('N','J') NEIN N Ist es möglich, den MySQL-Server herunterzufahren? Seien Sie sehr vorsichtig, wenn Sie dieses Privileg einem anderen Benutzer als dem Root-Konto erteilen.
Process_priv Aufzählung('N','J') NEIN N Ist es möglich, die Prozesse anderer Benutzer über den Befehl SHOW PROCESSLIST anzuzeigen?
File_priv Aufzählung('N','J') NEIN N Ist es möglich, die Befehle SELECT INTO OUTFILE und LOAD DATA INFILE auszuführen?
Grant_priv Aufzählung('N','J') NEIN N Kann ich meine Berechtigungen an andere Benutzer erteilen?
Referenzen_priv Aufzählung('N','J') NEIN N Ist es möglich, eine Fremdschlüsseleinschränkung zu erstellen?
Index_priv Aufzählung('N','J') NEIN N Ist es möglich, den Index hinzuzufügen, zu löschen und abzufragen?
Alter_priv Aufzählung('N','J') NEIN N Ist es möglich, die Tabellenstruktur umzubenennen und zu ändern?
Show_db_priv Aufzählung('N','J') NEIN N Ist es möglich, die Namen aller Datenbanken auf dem Server anzuzeigen, einschließlich derjenigen, für die der Benutzer über ausreichende Zugriffsberechtigungen verfügt?
Super_priv Aufzählung('N','J') NEIN N Ist es möglich, einige leistungsstarke Verwaltungsfunktionen auszuführen, z. B. das Löschen von Benutzerprozessen über den Befehl KILL, die Verwendung des Befehls SET GLOBAL zum Ändern globaler MySQL-Variablen und das Ausführen verschiedener Befehle im Zusammenhang mit Replikation und Protokollierung? (Superbehörde)
Create_tmp_table_priv Aufzählung('N','J') NEIN N Ist es möglich, eine temporäre Tabelle zu erstellen?
Lock_tables_priv Aufzählung('N','J') NEIN N Ist es möglich, den Zugriff/die Änderung einer Tabelle mit dem Befehl LOCK TABLES zu blockieren?
Execute_priv Aufzählung('N','J') NEIN N Kann die gespeicherte Prozedur ausgeführt werden?
Repl_slave_priv Aufzählung('N','J') NEIN N Kann ich binäre Protokolldateien lesen, die zur Verwaltung einer replizierten Datenbankumgebung verwendet werden?
Repl_client_priv Aufzählung('N','J') NEIN N Ist es möglich, den Standort von Replikations-Slave- und Master-Servern zu bestimmen?
Create_view_priv Aufzählung('N','J') NEIN N Ist es möglich, eine Ansicht zu erstellen?
Show_view_priv Aufzählung('N','J') NEIN N Ist es möglich, die Ansicht anzuzeigen
Create_routine_priv Aufzählung('N','J') NEIN N Kann ich gespeicherte Prozeduren und Funktionen ändern oder verwerfen?
Alter_routine_priv Aufzählung('N','J') NEIN N Kann ich hinterlegte Funktionen und Merkmale verändern oder löschen?
Create_user_priv Aufzählung('N','J') NEIN N Ist es möglich, den Befehl CREATE USER auszuführen, mit dem ein neues MySQL-Konto erstellt wird?
Event_priv Aufzählung('N','J') NEIN N Kann ich Ereignisse erstellen, ändern und löschen?
Trigger_priv Aufzählung('N','J') NEIN N Ist es möglich, Trigger zu erstellen und zu löschen?
Create_tablespace_priv Aufzählung('N','J') NEIN N Kann ein Tablespace erstellt werden?

Tabelle 2: Berechtigungsspalten der Benutzertabelle

Wenn Sie Berechtigungen ändern möchten, können Sie dem Benutzer mit der GRANT-Anweisung einige Berechtigungen erteilen oder Sie können Berechtigungen festlegen, indem Sie die Benutzertabelle mit der UPDATE-Anweisung aktualisieren.

Sicherheitsspalte

Die Sicherheitsspalte wird hauptsächlich verwendet, um zu bestimmen, ob sich der Benutzer erfolgreich anmelden kann. Die Sicherheitsspalte in der Benutzertabelle ist in Tabelle 3 dargestellt:

Feldname Feldtyp Ist es leer? Standardwert veranschaulichen
SSL-Typ Aufzählung('','BELIEBIG','X509','ANGEGEBEN') NEIN Unterstützt SSL-Standard verschlüsselte Sicherheitsfelder
SSL-Verschlüsselung Klecks NEIN Unterstützt SSL-Standard verschlüsselte Sicherheitsfelder
x509_Aussteller Klecks NEIN Unterstützt x509-Standardfelder
x509_Betreff Klecks NEIN Unterstützt x509-Standardfelder
Plugin char(64) NEIN mysql_native_password Einführung von Plugins zur Kennwortüberprüfung bei der Verbindung von Benutzern, Plugin zum Erstellen externer/Proxy-Benutzer
Passwort abgelaufen Aufzählung('N','J') NEIN N Ob das Passwort abgelaufen ist (N: nicht abgelaufen, j: abgelaufen)
Passwort_zuletzt_geändert Zeitstempel JA Notieren Sie den Zeitpunkt der letzten Änderung des Passworts
Passwortlebensdauer smallint(5) unsigniert JA Legen Sie die Gültigkeitsdauer des Passworts in Tagen fest
Konto gesperrt Aufzählung('N','J') NEIN N Ob der Benutzer gesperrt ist (J für gesperrt, N für entsperrt)

Tabelle 3: Sicherheitsspalten der Benutzertabelle

Hinweis: Auch wenn password_expired „Y“ ist, kann sich der Benutzer mit dem Passwort bei MySQL anmelden, darf aber nichts tun.

Normalerweise unterstützt die Standarddistribution kein SSL. Leser können die Anweisung SHOW VARIABLES LIKE "have_openssl" verwenden, um zu prüfen, ob eine SSL-Funktion vorhanden ist. Wenn der Wert von have_openssl DEAKTIVIERT ist, wird SSL-Verschlüsselung nicht unterstützt.

Spalte „Ressourcenkontrolle“

Die Felder in der Spalte „Ressourcenkontrolle“ dienen zur Begrenzung der von Benutzern verwendeten Ressourcen. Die Spalte „Ressourcenkontrolle“ in der Benutzertabelle ist in Tabelle 4 aufgeführt.

Feldname Feldtyp Ist es leer? Standardwert veranschaulichen
max_fragen int(11) unsigniert NEIN 0 Gibt die Anzahl der Abfragevorgänge an, die pro Stunde zulässig sind.
maximale Aktualisierungen int(11) unsigniert NEIN 0 Gibt die Anzahl der pro Stunde zulässigen Update-Operationen an
Max_Verbindungen int(11) unsigniert NEIN 0 Gibt die Anzahl der Verbindungsvorgänge an, die pro Stunde zulässig sind.
Maximale Benutzerverbindungen int(11) unsigniert NEIN 0 Gibt die Anzahl gleichzeitiger Verbindungen an, die erlaubt sind

Tabelle 4: Ressourcensteuerungsspalten der Benutzertabelle

Der Standardwert für die obigen Felder ist 0, was bedeutet, dass es keine Begrenzung gibt. Überschreitet die Anzahl der Benutzeranfragen oder Verbindungen innerhalb einer Stunde das Limit der Resource Control, wird der Benutzer ausgesperrt und kann die entsprechende Operation hier nur bis zur nächsten Stunde durchführen. Mit der GRANT-Anweisung können Sie die Werte dieser Felder aktualisieren.

Dies ist das Ende dieses Artikels über die MySQL-Benutzerberechtigungstabelle. Weitere Informationen zur MySQL-Benutzerberechtigungstabelle finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Implementierung der MySQL-Benutzerrechteverwaltung
  • Detaillierte Erläuterung der MySQL-Benutzerrechteverwaltung
  • Detailanalyse der MySQL-Berechtigungskontrolle
  • Detaillierte Erklärung der MySQL-Berechtigungssteuerung
  • Detailliertes Tutorial zum Erstellen eines Benutzers in MySQL und zum Erteilen von Benutzerberechtigungen
  • Problem mit Berechtigungen zum Ändern gespeicherter Prozeduren in MySQL
  • So legen Sie Remotezugriffsberechtigungen in MySQL 8.0 fest
  • Fallstudie zu MySQL-Berechtigungen und Datenbankdesign

<<:  Lösung für das Problem, dass Flash-Animationen auf Webseiten nicht angezeigt werden

>>:  HTML css js implementiert Tab-Seite Beispielcode

Artikel empfehlen

MySQL-Komplettabsturz: Detaillierte Erklärung der Abfragefilterbedingungen

Überblick In tatsächlichen Geschäftsszenarioanwen...

Vue+Element - benutzerdefinierte Abfragekomponente

In diesem Artikel wird hauptsächlich das Vue-Proj...

So verwenden Sie Umgebungsvariablen in der Nginx-Konfigurationsdatei

Vorwort Nginx ist ein auf Leistung ausgelegter HT...

Beispiele für minimalistisches Website-Design

Webanwendungsklasse 1. DownFürAlleOderNurIch Mith...

Schritte für Docker zum Erstellen eines privaten Lagerhafens

Hafen Harbor ist eine Open-Source-Lösung zum Erst...

So fügen Sie einem Feld in MySQL eine Standardzeit hinzu

Unterschiede und Verwendungen von Datumstypen MyS...

Schreiben eines Schere-Stein-Papier-Spiels in JavaScript

In diesem Artikel finden Sie den spezifischen Cod...

So optimieren Sie die MySQL-Abfragegeschwindigkeit

In den vorherigen Kapiteln haben wir die Auswahl ...

So zeigen Sie die Ausführungszeit von SQL-Anweisungen in MySQL an

Inhaltsverzeichnis 1. Erste SQL-Vorbereitung 2. M...